Django Rest Framework:ModelSerializer并根据HTTP METHOD选择字段

时间:2017-06-03 21:09:57

标签: django django-rest-framework

假设我有一个包含3个字段的电话簿和一个代表它的模型:

  1. 名称
  2. 年龄
  3. 电话
  4. 我正在编写一个API来发布新条目,获取现有条目并修改现有条目。为了这个问题,我的约束是:

    • for POST我希望能够在创建新记录时写下所有三个字段。
    • 对于GET,我只想返回AgePhone
    • 对于PUT我只想更新phone字段。

    鉴于类元的严格性以及我可以定义extra_kwargs的每个字段的定义,例如read_onlywrite_only - 我是否需要三个单独的ModelSerializer班?或者我可以在一个ModelSerializer中以某种方式具有某种条件以支持我的约束。

    由于

1 个答案:

答案 0 :(得分:0)

  

或者我可以在某种程度上具有某种条件   ModelSerializer以支持我的约束。

是的,事实上,当大多数人开始使用DRF时。这是采取的方法。当然,我自己走了那条路。但它不值得。

使用多个序列化要简单得多,代码行少。特别是如果您使用的是Views而不是Viewsets。如果您使用的是Viewsets,请覆盖get_serializer_class