Django 的 {{ csrf_token }} 仅输出令牌值,没有隐藏的输入标记

2024-05-13

为什么当我使用时隐藏输入字段的标记不显示{{ csrf_token }}?

这是我的模板中的一个片段:

<form action="." method="post">
{{ csrf_token }}

我期待生成这样的东西:

<form action="." method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="0c90dab91e22382cbaa5ef375f709167">

但相反,这是生成的 HTML:

<form action="." method="post">
0c90dab91e22382cbaa5ef375f709167

我已经这样做了很多次,并且在我的其他项目中运行良好,但我不知道这次我错过了什么。

我的views.py 文件如下所示:

from django.shortcuts import render_to_response
from django.template import RequestContext

def home(request):
    return render_to_response('home.html',
                              context_instance=RequestContext(request))

如您所见,我正在使用 RequestContext。我的中间件类在 settings.py 文件中定义如下:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

所以我使用 django.middleware.csrf.CsrfViewMiddleware。另外,我使用的是 Django 1.3.0。有什么想法吗?


你必须使用它作为标签{% csrf_token %}不作为您的视图传递的变量{{csrf_token}}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 的 {{ csrf_token }} 仅输出令牌值,没有隐藏的输入标记 的相关文章

随机推荐