Django 在模型中应用日期格式

Django Applying a date formatting in a model

我希望应用此行为(从模板中提取):

object.my_date|date:"F Y"

但在模型中。 是否可以直接在模型中使用预定义的模板标签?还是我应该依赖 python 函数?

谢谢。

您可以直接在 python 代码中调用此过滤器:

from django.template.defaultfilters import date as date_filter

date = date_filter(object.my_date, "F Y")

我会在模型上公开一个 属性 来满足您的要求。模板标签并不是真正设计用于模板之外的(尽管它们当然可以,因为它们毕竟只是函数),而且使用它们意味着您的模型代码取决于视图特定代码,这并不理想(通常视图代码将取决于模型代码,而不是相反)。

@property
def my_date_formatted(self):
    return self.my_date.strftime('%B %Y')

请注意,当使用 strftime 而不是模板标签时,指定日期格式的语法不同,在 http://strftime.org/.

有很好的参考