【发布时间】:2017-11-11 03:25:15
【问题描述】:
我有一个视图,它需要一个 POST 请求。发布请求应包含通过 Django 表单提交的数据。
Django 表单看起来像这样:
class SubmitForm(forms.Form):
title = forms.CharField(max_length=100)
comment = forms.CharField(max_length=255)
我知道我可以通过request.POST["title"] 和request.POST["comment"] 访问提交的数据。所以理论上我可以手动检查它们是否已设置且有效。
但是有没有办法使用.is_valid()(链接到Django documentation)来验证提交的表单?
一种可能性是在视图中创建一个表单,用提交的数据填充它,然后检查它的有效性。
data = {'title': request.POST["title"],
'comment': request.POST["comment"]}
f = SubmitForm(data)
f.is_valid()
# True/False
有没有直接的方法在提交的 Django 表单上使用is_valid()?
【问题讨论】:
-
就是这样。
if f.is_valid():然后是你的逻辑。 -
您还应该使用表单中的
cleaned_data。 -
FWIW 所有这些都清楚地记录在案:docs.djangoproject.com/en/1.11/topics/forms/#the-view
-
非常感谢@brunodesthuilliers 的链接
标签: python django forms model-view-controller view