在 Django 的管理界面中很好地显示日期

Posted

技术标签:

【中文标题】在 Django 的管理界面中很好地显示日期【英文标题】:Displaying dates nicely in Django's admin interface 【发布时间】: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,类似于返回布尔值的方法?

【问题讨论】:

【参考方案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 核心的人会接受补丁...

以上是关于在 Django 的管理界面中很好地显示日期的主要内容,如果未能解决你的问题,请参考以下文章

错误的显示 - 如何在闪亮的仪表板标题中很好地适应选择输入并设置它的样式

如何通过PHPcms后台管理界面修改网站首页

Django项目实践4 - Django网站管理(后台管理员)

响应式表格不适用于 laravel 布局

在文本中很好地打印决策树/使用自定义控件 [r]

AppFabric 无法从重新启动中很好地恢复