我正在尝试将this简单的django论坛集成到现有项目中。
在admin.py中我有
class TopicAdmin(admin.ModelAdmin):
list_display = ["title", "forum", "creator", "created"]
list_filter = ["forum"]
...
问题是,由于有+ 100K用户,当我尝试从管理面板添加主题时,浏览器只会挂起或变得如此慢,因为它需要加载creator
字段中的所有+ 100K用户。
所以我想知道如何过滤表单中的用户,以便admin.py只加载表单中的超级用户?
答案 0 :(得分:1)
您可以覆盖TopicAdmin
的默认表单,并为creator
字段设置所需的查询集:
class TopicForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(TopicForm, self).__init__(*args, **kwargs)
self.fields['creator'].queryset = User.objects.filter(is_superuser=True)
class TopicAdmin(admin.ModelAdmin):
form = TopicForm
...
但ModelAdmin
的{{3}}属性可能是更好的选择吗?
class TopicAdmin(admin.ModelAdmin):
...
raw_id_fields = ['creator']