ในเอกสาร Django มีข้อความว่า
เราเรียกเมธอด is_valid() ของแบบฟอร์ม หากไม่เป็น True เราจะกลับไปที่เทมเพลตพร้อมแบบฟอร์ม คราวนี้แบบฟอร์มไม่ว่างเปล่าอีกต่อไป (ไม่ถูกผูกไว้) ดังนั้นแบบฟอร์ม HTML จะถูกเติมด้วยข้อมูลที่ส่งมาก่อนหน้านี้ ซึ่งสามารถแก้ไขและแก้ไขได้ตามต้องการ
ฉันกำลังพยายามทำให้พฤติกรรมนี้ได้ผล
ใน 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})
ใน forms.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.