2010-06-07 3 views
0

Я пытаюсь найти способ фильтрации строк объектов в Django Admin с помощью набора запросов.Фильтрация строк с помощью Admin с помощью Queryset - Django

e.g. Person.objects.filter(Q(name='John')|Q(surname='Doe')) 

Я нахожу довольно сложным для выяснения.


Любые идеи?

+0

Вы хотите, чтобы вы сделали что-то вроде поиска или хотите отображать в целом только выбранные объекты в списке изменений? –

+0

@lazerscience Да, что-то вроде поиска, но с использованием набора запросов, подобного выше. Мое намерение состоит в том, чтобы искать все строки людей, которые соответствуют имени или фамилии. – RadiantHex

+0

Не понимаю ... Можете ли вы рассказать мне больше об этой проблеме? – Saff

ответ

0

Возможно, вы справитесь с этим, переопределив метод queryset() на вашем экземпляре modeladmin. См http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py?rev=15347#L196

# untested code 
class MyModelAdmin(admin.ModelAdmin): 
    def queryset(self, request): 
     qs = super(MyModelAdmin, self).queryset(request) 
     return qs.filter(Q(name='John') | Q(surname='Doe')) 

Это может повлиять лишь на результаты для модели, зарегистрированной с этим ModelAdmin, но вы могли бы, вероятно, подклассы его в качестве отправной точки для других классов ModelAdmin для того, чтобы оставаться сухими.

Я не говорю, что это хорошая идея.

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