Django错误与csrf_token

时间:2014-06-06 10:04:48

标签: django migration csrf

我将项目从django 1.3迁移到1.5,我有这个错误:

Environment:


Request Method: GET
Request URL: https://192.168.13.190/val/admin/

Django Version: 1.5.8
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'dxp.workflow2',
 'django_extensions',
 'south',
 'revisions',
 'dajax',
 'dajaxice',
 'django.contrib.admindocs')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'revisions.middleware.VersionedModelRedirectMiddleware',
 'django.middleware.locale.LocaleMiddleware')


Traceback:
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  138.                     response = response.render()
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/response.py" in render
  105.             self.content = self.rendered_content
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/response.py" in rendered_content
  82.         content = template.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  140.             return self._render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render_node
  844.         return node.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  124.         return compiled_parent._render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render_node
  844.         return node.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  124.         return compiled_parent._render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render_node
  844.         return node.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  63.             result = block.nodelist.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render_node
  844.         return node.render(context)
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/base.py" in render
  1208.                         new_context['csrf_token'] = csrf_token
File "/home/dxpadmin/lsf_env/lib/python2.7/site-packages/django/template/context.py" in __setitem__
  50.         self.dicts[-1][key] = value

Exception Type: TypeError at /admin/
Exception Value: 'str' object does not support item assignment

在日志中我没有看到与项目代码的任何关系,我试图在我的项目和中间件列表中停用csrf_token,但问题仍然存在

1 个答案:

答案 0 :(得分:0)

最可能的原因是你有context processor返回一个字符串而不是一个字典。