Окно поиска в админке Django: поиск по именам полей
Я пытаюсь настроить окно поиска django admin для моделей, чтобы я мог искать по нескольким полям одновременно. Вот что у меня есть:
class Person(models.Model):
name = models.CharField(max_length=200)
phone = models.CharField(max_length=200)
class SearchMixin(admin.ModelAdmin):
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(TargetedSearchFieldMixin, self).get_search_results(
request, queryset, search_term)
search_words = search_term.split()
if search_words:
q_objects = [Q(**{field + '__icontains': word})
for field in self.search_fields
for word in search_words]
queryset |= self.model.objects.filter(reduce(or_, q_objects))
return queryset, use_distinct
Это будет работать для модели человека, если мы дадим ввод следующим образом:
jack +1558844663
Вы ищете людей с номером телефона +1558844663 и именем Джек
Я хочу изменить метод, чтобы он принимал входные данные с именами полей следующим образом:
name=jack&phone=+1558844663