在Django模型中更改日期格式

时间:2013-11-26 22:20:44

标签: django django-models date-formatting datefield

我在django模型中有一个名为“birthdate”的日期字段和名为“lifespan”的属性。

字段

birthdate = models.DateField(blank=True, null=True)

属性

@property
def lifespan(self):
    return '%s - present' % self.birthdate

目前生命周期以“yyyy-mm-dd”格式返回日期。

如何将此日期格式更改为“mm / dd / yyyy”?

我知道如何在带有过滤器的django模板中执行此操作,但想知道是否有类似的“过滤器”,我可以在Django模型中使用。

我很感激反馈。

2 个答案:

答案 0 :(得分:6)

要获得完全控制权,请使用strftime

@property
def lifespan(self):
    return '%s - present' % self.birthdate.strftime('%m/%d/%Y')

strftime没有Django的date过滤器所做的所有格式化选项,所以如果你想要其中一个,你可以将过滤器称为函数:

from django.template.defaultfilters import date

@property
def lifespan(self):
    return '%s - present' % date(self.birthdate, "n/j/Y")

这会省略前导零,并允许您使用DATE_FORMAT设置变量或其他预定义选项。

答案 1 :(得分:0)

也许覆盖管理员:

说,该模型名为PersonDetail, 然后在admin.py

class PersonDetailAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DateTimeField: {'input_formats': ('%m/%d/%Y',)},
    }