【问题标题】:Displaying dates nicely in Django's admin interface在 Django 的管理界面中很好地显示日期
【发布时间】:2010-12-27 10:50:44
【问题描述】:

使用模型上返回布尔值的方法,您可以将它们标记为布尔值,以便管理员列表显示漂亮的图标,例如 example from the docs

class Person(models.Model):
    birthday = models.DateField()

    def born_in_fifties(self):
        return self.birthday.strftime('%Y')[:3] == '195'
    born_in_fifties.boolean = True

如果模型有DateTimeField,那么它会在列表显示中得到很好的格式化。

但是,如果我在模型上有一个返回 datetime 的方法,它会以 yyyy-mm-dd 值(例如 2010-03-16)显示在列表显示中,这不是很好阅读。

是否有一些内置方法可以将方法标记为返回 datetime,类似于返回布尔值的方法?

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    好吧,你不能直接使用:

    from django.utils.dateformat import *
    class Person(models.Model):
        birthday = models.DateField()
        ...
    
        def format_birthday(self):
            return format(self.birthday, "D d M Y")
    

    就其价值而言:未经测试。是凭记忆...


    PS。如果你想在其中添加一些 HTML,你需要做的就是:

    def format_birthday(self):
        return "<b>%s</b>" % format(self.birthday, "D d M Y")
    format_birthday.allow_tags = True
    

    【讨论】:

    • 是的,这行得通。我只是想知道是否有与您将方法表示为返回 datetimevalues 的方式等效,就像布尔值一样。
    • 我不这么认为。我相信 django 核心的人会接受补丁...
    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 2017-08-12
    • 2013-07-09
    • 2014-04-26
    • 2020-06-17
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多