一系列带有Django的表单帖子会导致403错误

如果用户点击提交登录页面上的表单,则会将它们带到另一个页面(第二页面),但如果用户尝试通过另一个表单发布登录第二页面,则用户会收到403禁止的错误。

着陆页形式工作。 登录表单工作正常。 但提交登录页面表单然后登录表单结果403 CSRF验证失败。

第一页上的表格返回:

render(request, 'page.html', context_var)

css的void形式如下所示:

<form action="{% url 'url_test' %}" method="POST">
<input type="hidden" name="some_name" value="for_view_use">
{% csrf_token %}
<button type="submit" name="other_name" value="value">button</button>
</form>

第二种形式或允许用户登录的视图返回:

HttpResponse('success')

和css的登录表单void是:

<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">Sign In</button>
</form>

我确定这两个视图都会返回这些值,因为我已经分别测试了它们。

我曾尝试使用@csrf_protect但没有奏效。 我已经检查过,加载后第二页上出现了令牌。 我知道这是与csrf令牌有关,但我无法弄清楚。

对我来说,看起来好像第一个表单没有为下一页返回可接受的csrf标记。

编辑:我没有解决问题本身,但我注意到第一个请求只是从服务器拉数据,所以我改变它为一个GET请求和错误停止发生。 这在我看来并不是一个答案,所以我会让这个线程打开,以防其他人在使用django的连续表单POST请求时遇到问题。

链接地址: http://www.djcxy.com/p/56547.html

上一篇: a series of form posts with django results in 403 error

下一篇: django post returning token not post data