Административная форма Django 1.11 добавляет поле поиска в поле oneToOne

У меня есть модели пользователя, администратора и сотрудника, и сотрудник, и администратор связаны с моделью пользователя с полем oneToOne, что я хотел бы сделать, это в форме администратора. У меня есть одно поле «пользователь»

вместо имея раскрывающееся поле со всеми пользователями, я хотел бы иметь окно поиска, чтобы при поиске определенного пользователя я находил его и выбирал администратором.

как?
я также пытался чтобы добавить поля пользователя в форму администратора, но я не мог
я попробовал встроенную вещь, parent_link в модели администратора... но я не смог найти решение
Теперь я хотел бы минимизировать поиск через длинный список пользователей, добавив поле поиска в поле


person leila    schedule 22.08.2017    source источник


Ответы (2)


Я решил эту проблему, используя django-ajax-selects пакет. Надеюсь, что это поможет вам.

приложение/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'},
}
person Athena    schedule 22.08.2017
comment
спасибо за ваш ответ, но я не нашел Reverse для 'ajax_lookup'. 'ajax_lookup' не является допустимой функцией представления или именем шаблона.???? - person leila; 23.08.2017
comment
Вы должны добавить ' url(r'^ajax_select/', include(ajax_select_urls)),' в свой urls.py, проверьте страницу установки. :) - person Athena; 23.08.2017
comment
если вы можете проверить это stackoverflow.com/questions/45786983/ - person leila; 23.08.2017

Используйте raw_id_fields от django. . При этом вы можете объявить объект внешнего ключа доступным для поиска.

person Max M    schedule 22.08.2017
comment
как сделать поиск по имени пользователя вместо id? - person leila; 22.08.2017