我正在尝试构建一个前端,该前端将检查可用于显示不同 UI 元素(如编辑按钮)的选项。我可以从 django Rest 框架后端提取选项,但它显示的唯一操作是 POST。
我将 ModelViewSet 与 DjangoObjectPermissions 一起使用。
我收到此响应 header :
Access-Control-Allow-Headers:accept, accept-encoding, authorization, content-type, dnt, origin, user-agent, x-csrftoken, x-requested-with, access-control-allow-methods
Access-Control-Allow-Methods:DELETE, GET, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Origin:*
Access-Control-Max-Age:86400
Allow:GET, POST, HEAD, OPTIONS
Content-Length:405
Content-Type:application/json
Date:Wed, 02 Aug 2017 19:40:08 GMT
Server:WSGIServer/0.1 Python/2.7.12
Vary:Accept
X-Frame-Options:SAMEORIGIN
这是发回的 json:
{
"name":"Project List",
"description":"",
"renders":[
"application/json",
"text/html"
],
"parses":[
"application/json",
"multipart/form-data"
],
"actions":{
"POST":{
"id":{
"type":"integer",
"required":false,
"read_only":true,
"label":"ID"
},
"description":{
"type":"string",
"required":true,
"read_only":false,
"label":"Description"
},
"name":{
"type":"string",
"required":true,
"read_only":false,
"label":"Name",
"max_length":80
}
}
}
}
我尝试从响应 header 中读取允许的操作,但事实证明这是不可能的。有没有办法让 Django Rest Framework 显示用户的所有可用操作?
最佳答案
默认DRF renders options only for POST
and PUT
methods 。如果您想将此行为扩展到更多 HTTP 方法,您需要创建 SimpleMetadata
的子类并重写 define_actions(...)
方法。
关于python - Django Rest Framework OPTIONS 操作仅显示 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45469838/