2015-11-02 52 views
0

这是一个新手问题。我发现Django rest框架的可浏览API能够检测在我的序列化程序中定义的只读字段,并将它们从呈现给用户的HTML表单中排除,以供PUT/POST操作使用。Can Django REST Framework是否向客户端指示只读字段?

这里使用的机制是什么,我可以用它来指示远程客户端的只读字段吗?我没有看到JSON对象本身的只读字段和可写字段之间的格式有任何区别,所以我猜测有一些元数据涉及到,但在文档中找不到任何东西。

我正在使用Django版本1.7和django-rest-framework版本3.1.3。

回答

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" 
        } 
       ] 
      } 
     } 
    } 
} 
0

你应该使用django-swagger,这是一个应用程序来记录Django其余框架的API。

在你的序列化程序字段中,你可以设置一个帮助文本,你可以用它来标记为只读字段,你的客户端应该读取API文件。

+0

谢谢你这个建议。由于我对此还比较陌生,因此我现在将采用Linovia建议的OPTIONS方法。 – Tanuka