我有一个带有 DateField 的 Django 模型,如下所示:
production_date = models.DateField(null=True, blank=True)
我试图让该字段在模板中显示为默认的 Python 日期格式,看起来像“2000-01-01”。 但在 Django 模板中,它显示为“2000 年 1 月 1 日”。
在 Python shell 中,日期显示正确:
In [4]: resource.production_date
Out[4]: datetime.date(2014, 4, 20)
In [5]: str(resource.production_date)
Out[5]: '2014-04-20'
但是在模板中,当我调用 Production_date 时,我得到了其他格式。
我有许多使用此值的模板,以及将数据添加到数据库的多种方式。 所以我不想去每个模板并更改显示。 我不想更改输入表单,因为这不是添加数据的唯一方式。 我不想更改我的网站设置。 我只想让该字段显示默认的 Python 值。 我该如何实现这个目标?
我会创建一个模型方法
get_production_date
..所以我不会做一大堆模板标签,也不喜欢它们..然后按CTRL+Shift+F(仅限HTML文件)找到production_date
并将它们更改为 get_production_date
class MyModel(models.Model):
production_date = models.DateField('Creation Time')
# ..other fields
def get_production_date(self)
from datetime import datetime # idk if this is required, I assume so?
return self.production_date.strftime("%Y-%m-%d")
{{ MyModelObj.get_production_date }}
我不是 100% 明白
accessor
是什么,但它听起来非常 class basey,我不使用它。但是!对于我的管理员,我在管理表中使用自定义列,例如:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'calculated_total',)
def calculated_total(self, obj):
return obj.get_calculated_total()
..所以,基于类的视图中一定有类似的东西,对吗??
我一直在谷歌搜索,但找不到正确的词语来描述它..
您可以使用类似 {{experience.start_year|日期:'Y'}} 我输入了“Y”,因为我只需要输出年份,如果您需要月份、日期和年份,您可以使用像 {{ 年|日期:'m','d','y'}}