Django如何在admin中按状态list_display对象

时间:2010-11-24 05:07:42

标签: django admin

我有一个模型对象说'类别'。我允许用户发布分类项目。 Category模型包含以下内容:

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."))

现在我的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'

我的问题是我想在admin中单独显示分类项目,或者通过状态分组显示。 例: list_display用于实时状态 list_display用于审批状态 list_display用于实时草稿状态

任何提示?

2 个答案:

答案 0 :(得分:1)

尝试使用管理过滤器。方法如下:Django Admin - List Filter

答案 1 :(得分:0)

您可以在管理类中使用列表过滤器。添加

list_filter = ('status',)

到你的CategoryAdmin课程。这应该会在条目列表的侧栏上为您提供过滤器选项“全部”,“实时”,“草稿”和“批准”。单击其中一个将相应地过滤列表。另请参阅The Django Admin site并查找“list_filter”。