1

我有一组使用 Django/python 从 sqlite 表中写入和读取的 html 页面。然而,为了消除一些混乱,我将 url 从 localhost/sessionsimulator 重命名为 localhost/session/simulator。当我尝试通过调用 localhost/sessionsimulator/create 发布到服务器时,一切正常。当我尝试使用新 URL(即 session/simulator/create)发布时,我收到了一个 csrf 错误。我已经更改了所有必要的 javascript 和 url 文件,但无法弄清楚为什么会出现此错误。

4

2 回答 2

1

问题出在 urls 文件中。当调用 /session/simulator/create 时,服务器搜索 /session/simulator 并且它是一个足够接近的匹配,所以它调用它。将 $ 添加到我所有网址的末尾会强制搜索更具体并完成我想要的内容。

于 2013-07-08T19:48:36.420 回答
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>
于 2013-07-08T18:23:07.723 回答