Административная форма Django 1.11 добавляет поле поиска в поле oneToOne
У меня есть модели пользователя, администратора и сотрудника, оба сотрудника и администратора связаны с моделью пользователя с полем oneToOne, что я хотел бы сделать, это в форме администратора у меня есть одно поле "пользователь"
вместо того, чтобы иметь раскрывающееся поле со всеми пользователями, я хотел бы иметь окно поиска, чтобы при поиске конкретного пользователя я находил его и выбирал его в качестве администратора.
как?
Я также пытался добавить поля пользователя в форму администратора, но я не мог
я попробовал встроенную вещь parent_link в модели администратора... но я не мог найти решение
Теперь я хотел бы свести к минимуму поиск по длинному списку пользователей, добавив поле поиска в поле
2 ответа
Я решил эту проблему, используя пакет django-ajax-select. Надеюсь, что это поможет вам.
Приложение / admin.py:
from ajax_select import register, LookupChannel
@register('users')
class UsersLookup(LookupChannel):
model = User
def get_query(self, q, request):
return self.model.objects.filter(username__icontains=q)
class EmployeeAdminForm(forms.ModelForm):
user = AutoCompleteSelectField('users', required=False,
help_text=None)
class Meta:
model = Employee
fields = '__all__'
settings.py
AJAX_LOOKUP_CHANNELS = {
'users' : {'model': 'auth.user', 'search_field': 'username'},
}
Используйте rawjid_fields от django. При этом вы можете объявить объект внешнего ключа доступным для поиска.