我有一个视图,它需要一个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()
?
答案 0 :(得分:1)
您可以直接将request.POST
作为Form参数传递:
form = PostForm(request.POST or None)
if form.is_valid():
....
答案 1 :(得分:1)
您可以按如下方式编写视图:
def verify_view(request):
if request.method == "POST":
form = SubmitForm(request.POST)
if form.is_valid():
# code here if form is valid
else:
form = SubmitForm() # returns empty form to be fill if not post request
return render(request, 'template_form.html', {'form': form})
答案 2 :(得分:1)
if request.method == 'POST':
form = PostForm(request.POST or None)
if form.is_valid():
// do your save work