我的应用程序已经增长,以便django管理员的下降有100,000个选项。我甚至无法打开我的管理员,因为它在数据库上的负载,不要太提及我将无法在选择框中找到一个选项。
django有自动填充选项吗?
在django admin中处理大数据的最佳选择是什么?
Django 2.0在管理站点上引入了一个名为autocomplete_fields
的新功能,这对于具有外键的模型很有帮助。它用自动完成元素替换普通的<select>
元素:
class QuestionAdmin(admin.ModelAdmin):
ordering = ['date_created']
search_fields = ['question_text']
class ChoiceAdmin(admin.ModelAdmin):
autocomplete_fields = ['question']
这是元素的屏幕截图:
使用raw_id_fields,如下所示:
class SomeModelAdmin(admin.ModelAdmin):
raw_id_fields = ('problematic_field', )
你可以在这里阅读更多相关信息:
基本上 - 它将使用带有镜头图标的原始id字段更改选择框 - 这将打开另一个窗口进行更改。
你的问题有很多解决方案,但我认为有两种方法可行:
raw_id_fields
可能会帮助您。这来自文档:默认情况下,Django的管理员使用选择框接口()来表示ForeignKey字段。有时您不希望产生必须选择要在下拉列表中显示的所有相关实例的开销。
raw_id_fields是您要更改为ForeignKey或ManyToManyField的Input小部件的字段列表:
class ArticleAdmin(admin.ModelAdmin):
raw_id_fields = ("newspaper",)