Django adminsite настроить запрос search_fields

В admin django вы можете установить поля search_fields для ModelAdmin, чтобы иметь возможность выполнять поиск по свойствам, указанным там. Мой класс модели обладает свойством, которое не является реальным свойством модели, означает, что оно не находится в таблице базы данных. Свойство относится к другой таблице базы данных, которая не привязана к текущей модели через отношения. Но я хочу, чтобы иметь возможность искать по нему, поэтому мне нужно как-то настроить запрос, созданный сайтом администратора, чтобы сделать фильтрацию, когда поле поиска было заполнено – возможно ли это, и если, как? Я могу запросить таблицу базы данных моего настраиваемого свойства, а затем возвращает идентификаторы классов модели, подходящих для поиска. Это, как я уже сказал, должно проникнуть в поисковый запрос администратора.

Благодаря!

3 Solutions collect form web for “Django adminsite настроить запрос search_fields”

Начиная с django 1.6, вы можете настроить поиск, get_search_results метод ModelAdmin подклассе ModelAdmin .

Это хорошо объяснено в документации django . Следующий пример копируется из этого документа.

 class PersonAdmin(admin.ModelAdmin): list_display = ('name', 'age') search_fields = ('name',) def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super(PersonAdmin, self).get_search_results(request, queryset, search_term) try: search_term_as_int = int(search_term) queryset |= self.model.objects.filter(age=search_term_as_int) except: pass return queryset, use_distinct 

Вы должны использовать search_fields = ['foreign_key__related_fieldname'] как search_fields = ['user__email'] в классе admin, который расширяет admin.ModelAdmin

подробнее здесь

это может помочь

search_fields = ['foreign_key__related_fieldname']

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields

  • сделать поле модели django только для чтения или отключить администратор при первом сохранении объекта
  • Несколько ModelAdmins / views для той же модели в Django admin
  • используя django-allauth
  • как добавить разрешения в Django в модели и протестировать его с помощью оболочки
  • Пользовательские столбцы с помощью администратора Django
  • Можете ли вы зарегистрировать несколько ModelAdmins для модели? Альтернативы?
  • Python / Django AttributeError «Объект« игроки »не имеют полей атрибутов '
  • django - установка прав пользователя при автоматическом создании пользователя
  • Python - лучший язык программирования в мире.