2015-11-02 55 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

相關問題