Django Form - POST 方法在视图中未识别为 POST

问题描述 投票:0回答:1

在我的 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) 
python django django-forms
1个回答
0
投票

这应该可以解决问题:-

   <form method="POST">
   {% csrf_token %}
   </form>
© www.soinside.com 2019 - 2024. All rights reserved.