Django admin выпадающий список 1000 пользователей
Гипотетически: у меня есть модель под названием Car, которая относится к одному пользователю. Мое беспокойство заключается в дефолт админке Django. Я назначаю пользователю автомобиль через выпадающее меню (это поведение Django по умолчанию, так мне сказали).
Что происходит, когда у меня есть 1000+ пользователей, чтобы выбрать из выпадающего списка. Справляется ли с этим администратор, если да, то как?
3 ответа:
Пользовательский интерфейс администратора по умолчанию отображает выпадающий список. Используйте опцию
raw_id_fields
, чтобы получить всплывающее окно с помощью кнопки поиска. Это окно позволяет найти и выбрать Связанный объект. Смотрите документацию: https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fieldsПо умолчанию администратор Django использует интерфейс select-box () для поля, которые являются чужеродными. Иногда вы не хотите навлечь на себя накладные расходы на то, чтобы выбрать все связанные экземпляры для отображения в выпадающий список.
Вы можете использовать плагин 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)