В документах Django говорится
Мы вызываем метод формы is_valid(); если не True, возвращаемся к шаблону с формой. На этот раз форма больше не является пустой (несвязанной), поэтому HTML-форма будет заполнена ранее отправленными данными, где их можно будет отредактировать и исправить по мере необходимости.
Я пытаюсь заставить это поведение работать.
В представлениях.py:
def test(request):
if request.method == 'POST':
form = TestForm(request.POST)
if form.is_valid():
return redirect('auctions/test.html')
else:
form = TestForm()
return render(request, 'auctions/test.html', {'form': form})
В формах.py:
class TestForm(forms.Form):
testnumber = forms.DecimalField(max_digits=1)
В test.html:
<form action="{% url 'auctions:test' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Теперь, когда я отправляю форму с числом, состоящим более чем из 1 цифры, is_valid()
оценивается как False
. Когда это происходит, в документах говорится, что шаблон должен отображаться с привязанной формой и ошибкой. Вместо этого ничего не происходит, и я получаю ValueError: The view auctions.views.test didn't return an HttpResponse object. It returned None instead.