在我的 django 项目中,我试图创建一个用户将通过特定网址访问的表单。
通过点击网址,用户将自动重定向到
pager_id
。
在用户点击上述网址并被重定向到
page_id
之间,一个表单将在后台传递,没有任何模板。
小问题,表格没有通过
if request.method == "POST":
。
我知道,因为控制台中渲染的打印是
this is not a post request
。
我想这可能是我第一次不使用模板来渲染表单。
我通常会指定如下内容:
<form "method="POST">
{% csrf_token %}
</form>
但这一次我不会这样做。一切都在视图中处理。
问题:
假设这是什么导致了问题:Django 是否需要使用模板来呈现表单?或者有没有办法以不同的方式指定
method="POST"
?还是还有其他我没有看到的东西?
views.py
def function(request, page_id):
form = myform(request.POST)
if request.method == "POST":
print('this is a post request')
if form.is_valid():
data = form.save(commit=False)
...
data.save()
return redirect('page', page_id=page_id)
else:
form = myform()
print('this is not a post request') #<-- this is what gets printed in the console
else:
print('Come back later!')
return redirect('page', page_id=page_id)
这应该可以解决问题:-
<form method="POST">
{% csrf_token %}
</form>