【问题标题】:Django Admin (display database entry if value > x) [duplicate]Django Admin(如果值> x,则显示数据库条目)[重复]
【发布时间】:2021-10-02 20:08:36
【问题描述】:

晚上好,

我在models.py(persons)中创建了一个新的数据库表:

class persons(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
active = models.IntegerField()

现在我在 admin.py 中添加了这段代码:

class personsAdmin(admin.ModelAdmin):
 list_display = ('name','age')

admin.site.register(persons, personsAdmin)

在管理区域中,它显示了我添加到数据库中的每个人。到目前为止一切顺利,但现在我只想查看活动 > 0 的人。我可以在 Django admin.py 中执行此操作吗?

【问题讨论】:

标签: python django


【解决方案1】:

进行以下更新:

class personsAdmin(admin.ModelAdmin):
 list_display = ('name','age', 'active')
 list_filter = ('active',) # Not, the trailing comma is intentional, it is so it becomes a tuple.
admin.site.register(persons, personsAdmin)

这将允许您按视图中的 active 字段进行过滤。

【讨论】:

  • 是否还有一个选项只显示活动 (active==1) 的?并且根本不显示非活动的(活动的!= 1)?使用过滤器,我仍然可以看到不活动的,因为我可以过滤它们:(
【解决方案2】:

感谢 bdbd,我可以重用一些代码来得到我的答案:

class customerAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(personsAdmin, self).get_queryset(request)
        return qs.filter(active=1)
    list_display = ('name','age',)

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 2023-03-03
    • 2019-12-12
    • 2016-06-17
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多