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

时间:2009-12-16 22:12:21

标签: django django-admin

使用模型上返回布尔值的方法,您可以将它们标记为布尔值,以便管理员列表显示漂亮的图标,如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 个答案:

答案 0 :(得分:2)

好吧,你不能只使用:

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