@Classsik

Как изменять поля сериализатора в зависимости от объекта модели?

Есть большая модель чата, у нее есть несколько типов описанных в поле chat_type, и для каждого типа есть соответствующие поля в модели. Когда я получаю список всех объектов модели через api, нужно чтобы в зависимости от chat_type для каждого объекта в этом списке выводились только определенные поля. Как это можно реализовать с помощью Django Rest Framework?
Пример ответа от сервера который мне нужен:

[
  {
    'chat_type': 'dialog',
    'members': [],
    'partner': {}
  },
  {
    'chat_type': 'group',
    'group_name': '',
    'group_members': []
  }
]
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
@bacon
1. Сделать "общий" Serializer со всеми возможными полями, но вроде так себе идея
2. Переписать то место, где вызывается get_serializer с many=True, проитерировать набор данных, где каждому элементу выбрать его конкретный Serializer
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы