Как мне указать фильтру моего ModelAdmin не показывать все записи по умолчанию? - PullRequest
2 голосов
/ 28 июля 2011

Я добавил фильтр на моей странице администрирования django следующим образом.

class MyAdmin(admin.ModelAdmin):
    list_filter = ('status',)

По умолчанию, если вы переходите к модели в представлении администратора, по умолчанию отображаются все записи. Но я хочу, чтобы это отфильтровать:

status="open"

и отображать его по умолчанию. Это достижимо?

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Я думаю, что вам нужно это ModelAdmin.ordering https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.ordering

Если вам ТОЛЬКО нужен статус = 'open', вы могли бы определить собственный набор запросов по умолчанию для вашего modeladmin https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.queryset и ограничил ваш элементы списка, которые будут иметь статус = только «открытый». (ВНИМАНИЕ) Однако в этом случае другие записи (status! = 'Open') станут недоступны для администратора.

0 голосов
/ 28 июля 2011

Если я правильно понимаю, вы можете переопределить менеджер моделей по умолчанию в модели

    class myManager(models.Manager):
         return self.filter(status = 'open')

    class myModel(models.Model):
         ...
         objects = myManager()

Но я думаю, что есть более элегантный способ.

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