【问题标题】:Django: name 'csrf_token' is not definedDjango:未定义名称“csrf_token”
【发布时间】:2011-07-19 05:57:29
【问题描述】:

我在 Django (1.2.5) 中的表单上添加 csrf_token 时遇到了一点问题,尽管我已经添加了所有必要的中间件类

{% csrf_token %}

给出...name 'csrf_token' is not defined 错误。

有什么问题?

苏丹

【问题讨论】:

  • 您的 settings.py 中是否启用了 CSRF 中间件?
  • @Sam Starling 是的,我已经启用但使用了已弃用的一个,这就是我得到错误的原因。
  • 感谢大家的关注!)
  • 如果您自己解决问题,您可能想回答自己的问题并将其标记为正确。或者,我刚刚写了一个答案。这样一来,当其他人遇到类似问题时,您就可以帮助他们找到此页面。
  • 顺便说一句。没有引起足够重视,尝试csrf_token作为视图装饰器,这是第二个原因

标签: python django security csrf django-csrf


【解决方案1】:

您需要检查您的 MIDDLEWARE_CLASSES 并确保 CSRF 中间件在其中。从 Django 1.2 开始,这是 django.middleware.csrf.CsrfViewMiddleware — 通过阅读 Django documentation on middleware 确保您使用的是正确的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2022-10-16
    • 2018-07-14
    • 2017-12-25
    • 2022-01-25
    • 2021-07-17
    • 2012-05-13
    相关资源
    最近更新 更多