这是一个新手问题。我看到Django rest框架的可浏览API能够检测我的序列化程序中定义的只读字段,并将它们从提供给用户进行PUT / POST操作的HTML表单中排除。
这里使用的机制是什么,我可以使用相同的方法向远程客户端指示只读字段吗?我没有看到JSON对象本身的只读字段和可写字段之间的格式有任何差异,因此我猜测有一些元数据,但我无法在文档中找到任何内容。
我使用的是Django 1.7和django-rest-framework 3.1.3版。
答案 0 :(得分:4)
您应该向Django REST框架发送OPTION请求以深入了解预期内容 - 请参阅可浏览界面上的选项按钮。
请参阅以下示例下的id字段:
{
"name": "Task List",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"POST": {
"id": {
"type": "integer",
"required": false,
"read_only": true,
"label": "ID"
},
"name": {
"type": "string",
"required": true,
"read_only": false,
"label": "Name",
"max_length": 64
},
"owner": {
"type": "field",
"required": true,
"read_only": false,
"label": "Owner",
"choices": [
{
"display_name": "admin",
"value": "admin"
},
{
"display_name": "cody",
"value": "cody"
}
]
}
}
}
}
答案 1 :(得分:0)
你应该使用django-swagger,它是一个用于记录django rest框架API的应用程序。
在序列化程序字段中,您可以设置帮助文本,您可以使用它来标记您的客户端应该在API文档中读取的只读字段。