尝试使用Emacs23上的w3m登录Django管理页面时出现CSRF错误

时间:2010-06-03 09:52:30

标签: python django emacs

我通常使用Firefox,并且在我的Django网站上的管理页面没有任何问题。但我使用Emacs23来编写我的帖子,并希望能够在Emacs中使用w3m来复制这些内容。当我尝试登录我的管理页面时,它会出现CSRF错误:

CSRF verification failed. Request aborted.

Help

Reason given for failure:

    No CSRF or session cookie.

...

有没有办法让我能够使用我的管理页面?我不确定问题是否存在于Django或Emacs或w3m设置上的管理员设置方式。

1 个答案:

答案 0 :(得分:1)

对于所有表单POST,Django 1.2默认需要CSRF token。我不认为有办法通过API调用获取令牌,以便能够从Emacs发布。

你可以通过复制和调整该视图的代码来删除django-bundled视图上的@protect_csrf装饰器的效果,从而制作一个没有装饰器的视图的定制版本。

我猜你从上面的有限信息来看,它是contrib.auth的login()方法的一个不受保护的版本,你需要在这里复制,我建议你在这个方法下访问这个方法非显而易见的网址路径,以保持外部世界的一些CSRF外观。 (即,不要覆盖/ login / path - 在其他地方连接对该视图的访问)