Фильтрация строк в Admin с использованием Queryset - Django - PullRequest
0 голосов
/ 07 июня 2010

Я пытаюсь найти способ отфильтровать строки объектов в Django Admin, используя набор запросов.

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

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


Есть идеи?

1 Ответ

0 голосов
/ 01 февраля 2011

Этого можно достичь, переопределив метод 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, чтобы оставаться СУХИМЫМ.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...