2017-06-03 54 views
0

說我有一個3個字段和模型電話簿來表示它:Django的REST框架:ModelSerializer和每個HTTP方法選擇領域

  1. 名稱
  2. 年齡
  3. 電話

我正在編寫一個API來發布新條目,獲取現有條目並修改現有條目。爲了這個問題,我的約束是:

  • for POST我希望能夠在創建新記錄時寫入所有三個字段。
  • 的GET我想只返回AgePhone
  • 爲PUT我想只允許phone場進行更新。

鑑於該類元的剛度和在那裏我可以爲每個領域,如read_onlywrite_only定義定義extra_kwargs - 我需要三個獨立的ModelSerializer類?或者我可以以某種方式在單個ModelSerializer中有某種條件以支持我的約束。

感謝

回答

0

或者我可以以某種方式有某種條件單一 ModelSerializer爲了支持我的約束。

是的,事實上,當大多數人開始使用DRF時,這是採取的方法。當然,我自己走了那條路。但它不值得。

使用多個序列化的代碼更容易和更少。特別是如果您使用視圖而不是Viewsets。如果您使用的是Viewsets,請覆蓋get_serializer_class

相關問題