Как заполнить поле ввода будущей датой в шаблоне Django?

Я пытаюсь заполнить поле ввода будущей датой в шаблоне django.

<input name="expiration_date" class="form-control" id="expiration_date" type="text"
                                           data-toggle="input-mask" data-mask-format="0000-00-00" value="{{ object.table.expiration_date|default:'' }}"

Как я могу настроить его так, чтобы object.table.expiration_date|default:'' предварительно заполнялся datetime.now() плюс 30 дней?

Вместо фильтра по умолчанию следует написать настраиваемый фильтр :

# my_filters.py
import datetime
from django import template

register = template.Library()

@register.filter(name=exp_date)
def expiration_default(value):
    if not value:
        return  datetime.datetime.now() + datetime.timedelta(days=30)
     else:
          return value

Ваш макет приложения может выглядеть следующим образом:

yourapp/
    __init__.py
    models.py
    templatetags/
        __init__.py
        my_filters.py
    views.py

Затем вы можете использовать его в своем шаблоне:

<input name="expiration_date" class="form-control" 
id="expiration_date" type="text"
data-toggle="input-mask" data-mask-format="0000-00-00" 
value="{{ object.table.expiration_date|exp_date }}"

Также не забудьте добавить следующий тег в ваш шаблон:

{% load  my_filters.py %}

обратитесь к https://docs.djangoproject.com/en/4.0/howto/custom-template-tags/#writing-custom-template-filters

Вернуться на верх