Показать dd/mm/yy в django
У меня есть поле ввода типа Дата, как показано ниже.
# forms.py
widgets = {
'date_of_birth': forms.DateInput(attrs={'type': 'date'})
}
Я использую приведенный ниже код в HTML-шаблоне.
<label class="form-label">Date of Birth</label>
{{ form.date_of_birth }}
Я получаю формат mm/dd/yy
, но я хотел бы получить формат dd/mm/yy
.
В шаблоне Django вы можете форматировать даты с помощью фильтра даты. Чтобы отформатировать дату в формате dd/mm/yy.
{{ form.date_of_birth|date:"d/m/y" }}
Если форматирование даты не работает непосредственно в шаблоне, это может быть связано с тем, что form.date_of_birth - это не непосредственно объект даты, а поле формы.
Вам необходимо убедиться, что значение из поля формы является объектом даты. Это можно сделать в представлении, прежде чем передавать его в шаблон.
from datetime import datetime
def your_view(request):
form = YourForm(request.POST or None)
if form.is_valid():
date_of_birth_str = form.cleaned_data['date_of_birth']
# Ensure date_of_birth_str is a string and convert to datetime object
date_of_birth = datetime.strptime(date_of_birth_str, '%m/%d/%y') # Adjust this according to your input format
# Pass the datetime object to the template context
context = {'form': form, 'date_of_birth': date_of_birth}
return render(request, 'your_template.html', context)
return render(request, 'your_template.html', {'form': form})
Вы можете просто передать формат следующим образом:
widgets = {
'date_of_birth': forms.DateInput(format="%d-%m-%Y", attrs={'type': 'date'})
}