2017-06-03 81 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