我希望应用此行为(从模板中提取):
object.my_date|date:"F Y"
但在模型中。 是否可以直接在模型中使用预定义的模板标签?或者我应该依赖python函数吗?
感谢。
答案 0 :(得分:1)
您可以在python代码中调用此过滤器:
from django.template.defaultfilters import date as date_filter
date = date_filter(object.my_date, "F Y")
答案 1 :(得分:1)
我会在模型上公开一个属性,以满足您的需求。模板标签并非真正设计为在模板之外使用(当然它们可以因为它们只是函数),而且使用它们意味着您的模型代码依赖于视图特定代码,这是不理想的(通常视图代码将取决于型号代码,而不是相反的方式)。
@property
def my_date_formatted(self):
return self.my_date.strftime('%B %Y')
请注意,使用strftime
代替模板标记时,指定日期格式的语法不同,http://strftime.org/处有一个很好的参考。