如何处理带有大量记录的django admin中的选择框

Atm*_*tma 4 python django django-admin bigdata

我的应用程序已经增长,因此django管理员中的下拉菜单有100,000个选项。由于它在数据库上的负载,我什至无法打开我的管理员,更不用说我无法在选择框中找到一个选项。

django有自动完成选项吗?

在django admin中处理大数据的最佳选择是什么?

opa*_*ski 5

使用 raw_id_fields,像这样:

class SomeModelAdmin(admin.ModelAdmin):
    raw_id_fields = ('problematic_field', )
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关此内容的更多信息:

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

基本上 - 它会更改带有镜头图标的原始 ID 字段的选择框 - 这会打开另一个窗口进行更改。


Fli*_*imm 5

Django 2.0在管理站点上引入了一个名为的新功能,该功能autocomplete_fields对于带有外键的模型很有用。它将normal <select>元素替换为autocomplete元素:

 class QuestionAdmin(admin.ModelAdmin):
     ordering = ['date_created']
     search_fields = ['question_text']

 class ChoiceAdmin(admin.ModelAdmin):
     autocomplete_fields = ['question']
Run Code Online (Sandbox Code Playgroud)

这是该元素的屏幕截图:

屏幕截图