Django: 通用类视图 + POST = HTTP 405(方法不允许)

13

最近我开始将一些视图函数转换为通用视图。 将预期处理POST请求(通过AJAX表单)的函数转换为通用视图会导致“405方法不允许”的HTTP异常。

我确信这不是与CSRF有关:Ajax发送有效令牌,在测试用例中将通用视图更改回视图函数(它们本质上是相同的)可以解决问题,最后,出于测试目的,我已禁用了CSRF中间件。

是否有人遇到类似的问题?

1个回答

17

我猜你正在使用基于类的视图。如果是这样,那么你需要在你的视图中定义post方法,或者使用一个可以做到这一点的mixin(如django.views.generic.edit.ProcessFormView)。如果你想完全理解为什么这是必要的,请查看django.views.generic.base.Viewdispatch方法(请参考dispatch)。


2
我没有在URL末尾添加斜杠,这就是我的问题所在。 - Antony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接