【发布时间】:2020-09-07 15:58:52
【问题描述】:
在Django docs,它说
"我们调用表单的 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.
【问题讨论】:
-
Is return render(request, 'auctions/test.html', {'form': form}) 应该在代码views.py的最后一行中添加标签
-
@AyanSh 不,是的。就是这样。如果您想发布我可以接受的答案。不敢相信我已经为此苦苦挣扎了这么久。
-
好的,我会发布答案np
标签: django django-forms django-templates