Задание отображения поля 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 }}
Вернуться на верх