2015-07-22 5 views
0

Есть ли стандартный способ в Django Admin, чтобы добавить флажок рядом с поиском, чтобы выбрать (во время выполнения), в каком поле искать?Django Admin Search Поле CheckBox

Я знаю, что есть атрибут AdminModel search_fields = ['one_field', 'other_field'] и т. Д. Но для этого проекта мне нужно выбрать одно поле в то время.

Любая идея приветствуется! Thanx!

ответ

1

Из документов:

Реализация по умолчанию выполняет поиск поля, названные в ModelAdmin.search_fields.

Этот метод может быть переопределен с помощью собственного метода поиска. Например, вы можете искать по целочисленному полю или использовать внешний инструмент, такой как Solr или Haystack. Вы должны установить, будут ли изменения в запросе, реализованные вашим методом поиска, вносить дубликаты в результаты и возвращать True во втором элементе возвращаемого значения.

Например, для того, чтобы поиск по целочисленного поля, вы можете использовать:

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) 
     except ValueError: 
      pass 
     else: 
      queryset |= self.model.objects.filter(age=search_term_as_int) 
     return queryset, use_distinct 

https://docs.djangoproject.com/en/1.8/ref/contrib/admin/

Добавьте логику и нужно там

Смежные вопросы