Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CSRF验证失败。请求被中止。(禁止的)(403)DJANGO_Python_Django_Security_Token - Fatal编程技术网

Python CSRF验证失败。请求被中止。(禁止的)(403)DJANGO

Python CSRF验证失败。请求被中止。(禁止的)(403)DJANGO,python,django,security,token,Python,Django,Security,Token,我试图从2个不同的下拉列表中获取帖子,我从帖子中获取了参数,但是我遇到了CSRF令牌的问题 index.html <form method="post" action="/getdata/">{% csrf_token %} <select name="Lista"> <option selected="selected" disabled>Objects on page:</option> <opti

我试图从2个不同的下拉列表中获取帖子,我从帖子中获取了参数,但是我遇到了CSRF令牌的问题

index.html

<form method="post" action="/getdata/">{% csrf_token %}
    <select name="Lista">
        <option selected="selected" disabled>Objects on page:</option>
        <option value="10">10</option>
        <option value="20">20</option>
        <option value="30">30</option>
        <option value="40">40</option>
        <option value="50">50</option>
    </select>

    <select name="Lista2">
        <option selected="selected" disabled>Objects on page:</option>
        <option value="10">10</option>
        <option value="20">20</option>
        <option value="30">30</option>
        <option value="40">40</option>
        <option value="50">50</option>
    </select>    
    <input type="submit" value="Select">    
</form>
models.py

from django.db import models

class Lista (models.Model):
    num_lista_1 = models.CharField(max_length=100, null=True)
    num_lista_2 = models.CharField(max_length=100, null=True)
    def __unicode__(self):
        return self.num_lista_1
我已通过以下方式激活cookies…

要使用,您需要使用请求对象呈现模板:

template = loader.get_template('index.html')
return HttpResponse(template.render(request=request))
如果在任何地方使用
render
,您的代码将更加一致:

return render(request, 'index.html')
要修复
[view]未返回HttpResponse
错误,您需要确保索引视图始终返回
HttpResponse
。当表单无效时,对于POST请求返回
None
。在Django,通常会执行以下操作:

def index(request):   
    if request.method == 'POST':
        ...
    form = FormsLista()
    return render(request, 'index.html', {'form': form})

然后,在模板中,可以显示表单错误。有关更多信息,请参阅上的文档。

我尝试了两种选项。。。但是我得到了这个错误视图tutorial.views.index没有返回HttpResponse对象。它没有返回任何结果。。。那是另一个问题。正如错误所示,您始终需要返回响应。看看当
if request.method=='POST':
但是表单无效时会发生什么。它工作了。。。但我不明白为什么我的帖子总是无效。。。有什么想法吗?如果你看
表单.错误
它应该会给你一个提示。如果你仍然被困,请问一个新问题,因为这是一个单独的问题。
def index(request):   
    if request.method == 'POST':
        ...
    form = FormsLista()
    return render(request, 'index.html', {'form': form})