Di dokumen Django, tertulis
Kami memanggil metode is_valid() formulir; jika belum benar kita kembali ke template yang ada formnya. Kali ini form sudah tidak kosong lagi (unbound) sehingga form HTML akan terisi dengan data yang telah dikirimkan sebelumnya, sehingga dapat diedit dan diperbaiki sesuai kebutuhan.
Saya mencoba membuat perilaku ini berhasil.
Di views.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})
Di formulir.py:
class TestForm(forms.Form):
testnumber = forms.DecimalField(max_digits=1)
Di tes.html:
<form action="{% url 'auctions:test' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Sekarang, ketika saya mengirimkan formulir dengan nomor lebih dari 1 digit, is_valid()
bernilai False
. Ketika itu terjadi, dokumen mengatakan templat harus dirender dengan formulir terikat dan kesalahannya. Sebaliknya, tidak ada yang terjadi, dan saya mendapatkan ValueError: The view auctions.views.test didn't return an HttpResponse object. It returned None instead.