Django как list_display объект по статусу в админке

У меня есть объект модели, скажем, «Категория». Я разрешил пользователям размещать элемент категории. Модель категории имеет следующее:

модели.py

LIVE_STATUS = 1
DRAFT_STATUS = 2
FOR_APPROVAL = 3

STATUS_CHOICES = (
    (LIVE_STATUS, 'Live'),
    (DRAFT_STATUS, 'Draft'),
    (FOR_APPROVAL, 'For Approval'),
)


status = models.IntegerField(choices=STATUS_CHOICES, default=FOR_APPROVAL,
    help_text=_("User posted reviews and categories are subject for approval. \
    Only entries with live status will be publicly displayed."))

Теперь я мой admin.py

class CategoryAdmin(admin.ModelAdmin):
    prepopulated_fields = { 'slug': ['name'] }
    list_display = ('name','destinations', 'status', 'pub_date',)
    ordering = ('status', 'pub_date',)
    date_hierarchy = 'pub_date'

Моя проблема в том, что я хочу отображать элементы категории в админке отдельно/или по группам через статус. пример: list_display для статуса в реальном времени list_display для статуса утверждения list_display для статуса текущих черновиков

Любые подсказки?


person Ronnie Beltran    schedule 24.11.2010    source источник


Ответы (2)


Вы можете использовать фильтры списка в своем классе администратора. Добавлять

list_filter = ('status',)

в свой CategoryAdmin класс. Это должно предложить вам параметры фильтра «Все», «Живое», «Черновик» и «На утверждение» на боковой панели справа от списка записей. Щелкнув по одному из них, вы отфильтруете список соответствующим образом. См. также сайт администрирования Django и найдите «list_filter».

person aldi    schedule 24.11.2010
comment
Это оно! Работал точно. Спасибо алди. - person Ronnie Beltran; 25.11.2010

Попробуйте использовать фильтры администратора. Вот как: Django Admin — List Фильтр

person FernandoEscher    schedule 24.11.2010