разные сериализаторы для запросов POST и GET, это правильный путь? Динамические вложенные сериализаторы - PullRequest
0 голосов
/ 23 апреля 2019

Я хочу иметь следующее поведение:

# GET Request
{
  "id": 1,
  "name": "test",
  "created_date": "date",
  "completed_date": "date",
  "template": { "name" : "test" }, => nested serializers with only the field "name"
  "status": 1,
  "results": [ { __all__ }, ... ], => nested serializers with all the fields
  "groups": [ { "name" }, ... ], => nested serializers with only the field "name"
}

# POST Request
{ 
  "name": "test",
  "template": {"name":"test"}, => nested serializers with only the field "name"
  "groups": [ {"name":"test"} ], => nested serializers with only the field "name"
}

Как вы можете видеть, запрос на публикацию не имеет всей информации, которая отображается.Я знаю, что некоторые поля можно удалить с помощью переменной read_only_fields.Но проблема здесь больше связана с вложенными сериализаторами.У меня проблемы с проверкой данных ... Эта проблема связана с этой проблемой: Динамические вложенные сериализаторы: пустые validated_data

Мне было интересно, если использовать динамические сериализаторы и с комбинацией read_only_fieldsбыло хорошим обслуживаемым и читаемым решением: https://www.django -rest-framework.org / api-guide / serializers / # dynamic-modifying-fields

Или я должен использовать следующее решение: Использовать другой сериализатор для запроса и ответа

PS: я также нашел этот пост, который похож на то, что я пытаюсь сделать: Django Rest Framework: вложенные поля динамической модели Serializer

Еще раз спасибо!

С уважением,

...