【问题标题】:django: generic class view + POST = HTTP 405 (Method not allowed)django:通用类视图 + POST = HTTP 405(不允许的方法)
【发布时间】:2012-01-23 17:02:46
【问题描述】:
最近我开始将一些视图函数转换为通用视图。
转换预期处理 POST 请求的函数(通过 AJAX 表单)会导致“405 Method not allowed”HTTP 异常。
我确定不是关于 CSRF:Ajax 发送有效令牌,将通用视图更改回视图功能(在测试用例中,它们本质上是相同的)解决了问题,并且 - 最后 -出于测试目的,我禁用了 CSRF 中间件。
有没有人遇到过类似的问题?
【问题讨论】:
标签:
python
django
http
http-status-code-405
【解决方案1】:
我想您正在使用基于类的视图。如果是这样,那么您需要在您的视图中定义 post 方法或使用 mixin 来实现它(例如django.views.generic.edit.ProcessFormView)。如果您想完全理解为什么这是必要的,请查看django.views.generic.base.View 的dispatch 方法。