我有一组工作的html页面,使用Django / python从sqlite表中写入和读取。但是为了消除一些困惑,我将url从localhost / sessionsimulator重命名为localhost / session / simulator。当我尝试通过调用localhost / sessionsimulator / create发布到服务器时,一切正常。当我尝试使用新URL(即session / simulator / create)发布时,我收到了csrf错误。我已经更改了所有必要的javascript和url文件,但无法弄清楚为什么我收到此错误。
答案 0 :(得分:1)
问题在于urls文件。当调用/ session / simulator / create时,服务器搜索了/ session / simulator,它是一个足够接近的匹配,所以它就是这样调用的。将$添加到我所有网址的末尾会强制搜索更具体,并完成我想要的内容。
答案 1 :(得分:0)
确保您已妥善设置路径,并在您安装的settings.py文件中设置:
MIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
)
and in your html file you are use the csrf_token validation :
<form method="POST" action=" your view or action ">{% csrf_token %}
</form>