Django管理员下载了1000个用户

时间:2013-02-16 17:08:52

标签: django django-admin

假设:我有一个名为Car的模型,它与一个用户有关。我担心的是默认的Django Admin。我通过下拉列表将用户分配给汽车(这是默认的Django行为,所以我被告知)。

当我在下拉列表中有1000个以上的用户可供选择时会发生什么。管理员是否处理此问题,如果是这样的话?

3 个答案:

答案 0 :(得分:8)

默认管理界面显示下拉列表。使用raw_id_fields选项通过搜索按钮获取弹出窗口。此窗口允许您查找并选择链接对象。请参阅文档:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

  

默认情况下,Django的管理员使用选择框界面()   ForeignKey的字段。有时你不想招致   必须选择要显示的所有相关实例的开销   下拉。

答案 1 :(得分:4)

您可以查看django-grappelli,这是一款增强管理界面的应用。 documentation使用ForeignKey描述了ManyToManyraw_id_fields关系的自动填充功能。

答案 2 :(得分:4)

您可以使用django-select2插件https://github.com/applegrew/django-select2

您可以执行以下操作:

from django_select2 import AutoModelSelect2Field

class CategoryChoices(AutoModelSelect2Field):
    queryset = models.Category.objects
    search_fields = ['name__icontains', 'code__icontains']

class NewsAdminForm(forms.ModelForm):
    category = CategoryChoices()

    class Meta:
        model = models.News
        exclude = ()

# register in admin
class NewsAdmin(admin.ModelAdmin):
    form = NewsAdminForm
admin.site.register(News, NewsAdmin)