Python 调试模式下CSRF令牌为空-Django 1.6
注:这是针对Django 1.6的 我试图弄明白,当Django调试设置设置为true时,为什么我们的站点上不会生成CSRF令牌 一些背景:CSRF令牌的使用方式并不像Django文档中建议的那样(不过,我也尝试过)。在表单的init函数中,它们的操作如下:Python 调试模式下CSRF令牌为空-Django 1.6,python,django,csrf,Python,Django,Csrf,注:这是针对Django 1.6的 我试图弄明白,当Django调试设置设置为true时,为什么我们的站点上不会生成CSRF令牌 一些背景:CSRF令牌的使用方式并不像Django文档中建议的那样(不过,我也尝试过)。在表单的init函数中,它们的操作如下: from django.middleware import csrf self.fields['csrfmiddlewaretoken'].initial = csrf.get_token(self.request) 在仔细检查了执行顺序
from django.middleware import csrf
self.fields['csrfmiddlewaretoken'].initial = csrf.get_token(self.request)
在仔细检查了执行顺序之后,我发现
- 当调试为True时:此初始化发生在csrf中间件运行之前在这种情况下,当上述代码运行时,csrf.get_token(self.request)返回None。
- DEBUG为False时:此初始化发生在csrf中间件运行之后在这种情况下,当上述代码运行时,csrf.get_令牌(self.request)返回正确的csrf令牌。