I have a model object say ‘Category’. I allowed users to post Category item. The Category model has these:
models.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."))
Now im my 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'
My problem is that I want to display Category items in admin separately/or by group via status.
example:
list_display for live status
list_display for for approval status
list_display for live drafts status
Any hints?
You could use list filters in your admin class. Add
to your
CategoryAdminclass. This should offer you the filter options ‘All’, ‘Live’, ‘Draft’ and ‘For Approval’ on a side bar right to the list of entries. Clicking one of them will filter the list accordingly. See also The Django Admin site and look for ‘list_filter’.