在 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 的管理界面中很好地显示日期的主要内容,如果未能解决你的问题,请参考以下文章
错误的显示 - 如何在闪亮的仪表板标题中很好地适应选择输入并设置它的样式