Форматирование дат в формате гггг-мм-дд в шаблонах Django: методы и примеры

Чтобы отформатировать дату в шаблонах Django как «гггг-мм-дд», вы можете использовать встроенный фильтр даты. Вот несколько способов добиться этого:

Метод 1: использование фильтра dateсо спецификатором формата Г-м-д:

{{ your_date_variable|date:"Y-m-d" }}

Метод 2: использование фильтра dateс настройкой DATE_FORMAT:
В файле настроек Django вы можете определить DATE_FORMATнастройка следующим образом:

DATE_FORMAT = "Y-m-d"

Затем в вашем шаблоне вы можете использовать фильтр dateбез указания формата:

{{ your_date_variable|date }}

Django автоматически использует параметр DATE_FORMATдля форматирования даты.

Метод 3. Написание собственного фильтра шаблона.
Вы можете создать собственный фильтр шаблона для форматирования даты. В своем приложении Django создайте новый файл с именем custom_filters.py(или любое другое имя, которое вы предпочитаете) и определите фильтр следующим образом:

from django import template
from django.utils.dateformat import DateFormat
register = template.Library()
@register.filter
def custom_date_format(value):
    df = DateFormat(value)
    return df.format("Y-m-d")

Обязательно загрузите пользовательский фильтр в свой шаблон перед его использованием:

{% load custom_filters %}
{{ your_date_variable|custom_date_format }}