【问题标题】:Django how to list_display an object by status in adminDjango如何在管理员中按状态列出对象
【发布时间】:2010-11-24 05:07:42
【问题描述】:

我有一个模型对象说“类别”。我允许用户发布类别项目。 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'

我的问题是我想在管理员中单独/或通过状态按组显示类别项目。 例子: list_display 实时状态 list_display 用于审批状态 list_display 实时草稿状态

有什么提示吗?

【问题讨论】:

    标签: django admin


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      list_filter = ('status',)
      

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

      【讨论】:

      • 就是这样!准确地工作。谢谢阿尔迪。
      猜你喜欢
      • 2013-03-11
      • 1970-01-01
      • 2013-04-26
      • 2012-06-14
      • 2018-01-11
      • 2011-06-02
      • 2012-02-16
      • 2014-01-23
      • 2021-05-28
      相关资源
      最近更新 更多