13

最近我开始将一些视图函数转换为通用视图。转换预期处理 POST 请求的函数(通过 AJAX 表单)会导致“405 Method not allowed”HTTP 异常。我确定与 CSRF无关:Ajax 发送有效令牌,将通用视图更改回视图功能(在测试用例中,它们本质上是相同的)解决了问题,并且 - 最后 - 出于测试目的,我已经禁用 CSRF 中间件。有没有人遇到过类似的问题?

4

1 回答 1

17

我想您正在使用基于类的视图。如果是这样,那么您需要post在视图中定义方法或使用执行它的 mixin(django.views.generic.edit.ProcessFormView例如)。如果你想完全理解为什么这是必要的,那么看看dispatch方法django.views.generic.base.View

于 2011-12-19T17:43:42.387 回答