我通常使用Firefox,并且在我的Django网站上的管理页面没有任何问题。但我使用Emacs23来编写我的帖子,并希望能够在Emacs中使用w3m来复制这些内容。当我尝试登录我的管理页面时,它会出现CSRF错误:
CSRF verification failed. Request aborted.
Help
Reason given for failure:
No CSRF or session cookie.
...
有没有办法让我能够使用我的管理页面?我不确定问题是否存在于Django或Emacs或w3m设置上的管理员设置方式。
答案 0 :(得分:1)
对于所有表单POST,Django 1.2默认需要CSRF token。我不认为有办法通过API调用获取令牌,以便能够从Emacs发布。
你可以通过复制和调整该视图的代码来删除django-bundled视图上的@protect_csrf装饰器的效果,从而制作一个没有装饰器的视图的定制版本。
我猜你从上面的有限信息来看,它是contrib.auth的login()方法的一个不受保护的版本,你需要在这里复制,我建议你在这个方法下访问这个方法非显而易见的网址路径,以保持外部世界的一些CSRF外观。 (即,不要覆盖/ login / path - 在其他地方连接对该视图的访问)