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

Posted

技术标签:

【中文标题】django:通用类视图 + POST = HTTP 405(不允许的方法)【英文标题】:django: generic class view + POST = HTTP 405 (Method not allowed) 【发布时间】:2012-01-23 17:02:46 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

我的网址最后没有用斜线结尾。那是我的问题。

以上是关于django:通用类视图 + POST = HTTP 405(不允许的方法)的主要内容,如果未能解决你的问题,请参考以下文章

Django 通用类视图

如何响应 Django 基于类的视图中不允许的方法

Django通用类视图实现忘记密码重置密码功能

Django 基于类的通用视图和身份验证

django 类通用视图详解

Django - 基于类的通用视图 - “没有要重定向到的 URL”