Задание отображения поля django DateField из модели, а не из формы/ввода/настроек?
У меня есть модель Django с полем DateField, примерно так:
production_date = models.DateField(null=True, blank=True)
Я пытаюсь сделать так, чтобы это поле отображалось в формате даты Python по умолчанию в шаблонах, который выглядит как "2000-01-01". Но в шаблоне Django оно отображается как "Jan. 1, 2000."
В оболочке Python дата отображается правильно:
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 по умолчанию. Как мне этого добиться? Спасибо!
Вы можете применить фильтр даты в шаблоне
Пример:
{{ birthday|date:"m, d, Y" }}
Формат даты в Django Ссылка
Я бы сделал метод модели get_production_date
... Так я не делаю дерьмовую тонну тегов шаблона, не фанат их... а затем CTRL+Shift+F (только HTML файлы) нахожу production_date
и меняю их на get_production_date
models.py
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 }}