Django/DRF - 405 方法不允许删除操作

标签 django django-rest-framework django-cors-headers

我正在本地机器(节点和 django)上使用两台开发服务器。

我添加了 django-cors-headers 到项目以允许所有来源和方法(在开发上)具有以下设置:

CORS_ORIGIN_ALLOW_ALL = 'ALL'
CORS_ALLOW_METHODS = (
        'GET',
        'POST',
        'PUT',
        'PATCH',
        'DELETE',
        'OPTIONS'
    )

尝试删除时收到 405。
查看响应 header
HTTP/1.0 405 METHOD NOT ALLOWED
Date: Mon, 03 Nov 2014 10:04:43 GMT
Server: WSGIServer/0.1 Python/2.7.5
Vary: Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Access-Control-Allow-Origin: *
Allow: GET, POST, HEAD, OPTIONS

请注意 DELETE & PATCH/PUT不在允许的方法列表中。

我的配置中是否缺少某些内容?

最佳答案

响应看起来与 的响应非常相似。 ListView ( /api/resource/ ) 用于 ViewSet。 ListView 仅支持 GET , 列出所有对象,和 POST创建一个新对象。
DELETE请求只允许在 详细 View (/api/resource/1/)。这是因为 Django REST Framework 需要知道您要删除的对象,并且无法仅从 ListView 中检索此信息。

关于Django/DRF - 405 方法不允许删除操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711975/

相关文章:

django - 如何在 Django 中指定过滤器查询的最大结果?

python - django-cors-headers 根本不工作

python - Angular post返回403而get在Django中使用Django Rest Framework返回301

ajax - CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

django - Django digitalocean Spaces 请求的资源上不存在 'Access-Control-Allow-Origin' header

django - Ajax、CSRF 和删除

python - Django URL 正则表达式 "is not a valid regular expression"错误

python - 在 Django 中获取本地日期时间和时间

python - 无法从 'detail_route' 导入名称 'rest_framework.decorators'

Django 休息框架 : Dynamically return subset of fields