Форма Django на этапе valid() не проходит валидацию
Я создал html-форму, которая связана с формой django. Когда данные из html-формы передаются в форму django, она терпит неудачу на этапе form.is_valid():. Я думаю, что это связано с форматированием, но я прочитал документацию и не могу найти решение.
form.py
class AvailabilityForm(forms.Form):
name = forms.CharField(max_length=80, required=True)
email = forms.EmailField(max_length=254, required=True)
start_date = forms.DateField(input_formats=["%Y-%m-%d", ])
start_time = forms.TimeField(input_formats=["%H:%M", ])
end_date = forms.DateField(input_formats=["%Y-%m-%d#", ])
end_time = forms.TimeField(input_formats=["%H:%M", ])
html форма
<form class="form-book" action="" method="POST" id="datetimepicker1">
{% csrf_token %}
<label for="id_name">Name</label>
<input type="text" name="name" maxlength="80" required_id="id_name" required>
<label for="id_email">Email</label>
<input type="email" required_id="id_email" name="email" max_length="254" required>
<label for="id_start_date">Start Date</label>
<input type="date" name="start_date" required_id="id_start_date" class="datepicker" required>
<label for="id_start_time">Start Time</label>
<input type="time" name="start_time" required_id="id_start_time" class="timepicker" required>
<label for="id_end_date">End Date</label>
<input type="date" name="end_date" required_id="id_end_date" class="datepicker" required>
<label for="id_end_time">End Time</label>
<input type="time" name="end_time" required_id="id_end_time" class="timepicker" required>
<button class="btn btn-signup right" type="submit">Book</button>
</form>
form.is_valid()
относится к данным, найденным в request.POST
, которые были отправлены клиентом. Ваше представление должно повторно отображать форму с сообщениями об ошибках. Ваш пользовательский HTML выше этого не делает. Документация здесь.
Следуя документу, вам нужно что-то вроде этого
<form class="form-book" action="" method="POST" id="datetimepicker1">
{% csrf_token %}
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.name.errors }}
<label for="{{ form.name.id_for_label }}">Name:</label>
{{ form.name }}
</div>
...
{{form.non_field_errors}}
легко забывается, и это ошибки, которые не могут быть связаны с какой-либо конкретной областью