Прекрасно отображать даты в интерфейсе администратора Django - PullRequest
2 голосов
/ 17 декабря 2009

С помощью методов в вашей модели, которые возвращают логические значения, вы можете пометить их как логические, чтобы в списке администратора отображались симпатичные значки, например, пример из документации :

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 Ответ

2 голосов
/ 17 декабря 2009

Ну, вы не можете просто использовать:

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
...