更改Django模型中的日期格式



在django模型中,我有一个名为"birthdate"的日期字段和名为"lifetime"的属性。

字段

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

属性

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

当前寿命以"yyyy-mm-dd"格式返回日期。

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

我知道如何在带有过滤器的django模板中做到这一点,但我想看看是否有类似的"过滤器"可以在django模型中使用。

我感谢您的反馈。

要进行完全控制,请使用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设置变量或其他预定义选项。

可能会覆盖admin:

比如说,模型名为PersonDetail,然后在管理员.py

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

相关内容

  • 没有找到相关文章

最新更新