Я сталкиваюсь со странной дилеммой. Фильтр Django date:"Y/m/d"
предотвращает отображение значений формы, если форма не проверена. Вот мой ModelForm:
DATE_INPUT_FORMATS = ['%Y/%m/%d', '%Y-%m-%d']
class PromotionModelForm(ModelForm):
last_promotion_date =
forms.DateField(input_formats=DATE_INPUT_FORMATS)
class Meta:
model = Professor
fields = ['last_promotion_date']
Вот мой взгляд:
def first-view(request):
professor = get_object_or_404(Professor,
user__username=request.user)
form = SomeForm(request.POST or None, instance=professor)
if form.is_valid():
form.save()
context = {"form": form}
return redirect('/first-view')
else:
return render(request, 'core/first-view.html',
context={'form':form})
и вот шаблон:
<form class="inner_box" method="POST" action="{% url 'core:first_view' %}" name="">
{% csrf_token %}
<table>
<tr class="table_header">
<th colspan="8" class="right">last_promotion_date</th>
<td><input type="text" name="last_promotion_date" onfocus="displayDatePicker(this.id);" class="date_picker" value="{{ form.last_promotion_date.value|date:"Y/m/d"}}"</td>
</tr>
</form>
А вот и проблема
если форма недопустима, и если я сохраняю фильтр date:"Y/m/d"
, значения формы, имеющие этот фильтр, не отображаются в отображаемом ответе.
Однако, если я удаляю фильтр date:"Y/m/d"
из переменных шаблона, форма отображается , включая неверный ввод.
Проблема с фильтром date:"Y/m/d"
возникает только тогда, когда форма не проверена. Те же самые значения дат, которые отображаются в запросе «GET», исчезают в ответе на запрос «POST», если форма не проверена.
Это довольно загадочно. Что мне здесь не хватает? Почему недопустимые значения формы не отображаются при наличии фильтра date:"Y/m/d"
?