Окно поиска в админке 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
Вернуться на верх