为什么我的CSRF令牌在Django中失败?

时间:2015-02-18 18:57:52

标签: python django django-csrf

我已在views.py中提供了CSRF,并在模板中包含csrf_token,但由于“csrf_token失败”,搜索仍然无效。

我的views.py代码是:

args = {}
args.update(csrf(request))
args['articles']= Article.objects.all()
args['lang'] = language
args['session_language']=session_language
return render_to_response('articles.html', args)

和模板代码是

<h3>Search</h3>
{% csrf_token %}
<input type='text' id='search' name='search' />

2 个答案:

答案 0 :(得分:0)

csrf_token只是所需的字符串,您需要对其执行某些操作。对于初学者来说,在脚本中捕获它在模板中将意味着javascript是&#34;意识到&#34;它的。

{# Place this somewhere in your template #}
<script type="text/javascript">
    var csrf_token = "{{ csrf_token }}";
</script>

在此之后,您如何提交AJAX请求取决于您,但您现在可以将其用作POST提交的一部分。

答案 1 :(得分:0)

您需要在每个POST请求中传递csrf标记值。