【问题标题】:in django admin model listing, Display 'Yes/No' for method's return value在 django 管理模型列表中,为方法的返回值显示“是/否”
【发布时间】:2019-12-17 05:03:24
【问题描述】:

我正在 dJango 项目网站上学习 django admin,我想在管理列表页面中显示“是/否”而不是 True/False 图标。这些值来自 AdminModel 中定义的方法。

模型类中有一个返回 True/False 的方法。在 django 中有一个属性“boolean”,当分配为“True”时,它会在管理列表页面上显示红色和绿色的图标。

**class** Question(models.Model):
    pub_date = models.DateTimeField('date published')
    def was_published_recently(self):
        now = timezone.now()
        **return** now - datetime.timedelta(days=1) <= self.pub_date <= now
    was_published_recently.boolean = True

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    我认为您必须为此编写一个自定义方法:

    class QuestionAdmin(ModelAdmin):
        list_dipslay = [..., 'recently_published']
        readonly_fields = [..., 'recently_published']
        # ...
        def recently_published(self, obj):
            return ('No', 'Yes')[obj.was_published_recently()]
        recently_published.short_description = 'whatever column header'
    

    据我所知,没有方便的挂钩可以全局更改布尔字段列表的显示行为。

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 1970-01-01
      • 2015-03-10
      • 2021-06-06
      • 2016-09-16
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      相关资源
      最近更新 更多