Django REST Framework可以向客户端指示只读字段吗?

时间:2015-11-02 05:34:55

标签: django-rest-framework

这是一个新手问题。我看到Django rest框架的可浏览API能够检测我的序列化程序中定义的只读字段,并将它们从提供给用户进行PUT / POST操作的HTML表单中排除。

这里使用的机制是什么,我可以使用相同的方法向远程客户端指示只读字段吗?我没有看到JSON对象本身的只读字段和可写字段之间的格式有任何差异,因此我猜测有一些元数据,但我无法在文档中找到任何内容。

我使用的是Django 1.7和django-rest-framework 3.1.3版。

2 个答案:

答案 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文档中读取的只读字段。