Django rest framework - создание и возврат нескольких экземпляров объекта вместо одного - PullRequest
0 голосов
/ 15 октября 2019

То, что я делаю, - это отправка списка первичных ключей с другими данными в конечную точку, и я создаю экземпляр объекта для идентификатора, который находится в списке. Проблема в том, что я хочу затем вернуть все созданные мной объекты, но ожидается только один экземпляр объекта, поэтому он не будет работать.

Данные, которые я публикую в / convo /: id / members/ выглядит так:

{
  member_ids = [5,1,2,6]
}

Затем в представлении я передаю текущего пользователя своему сериализатору (необходим для объекта, который я создаю, потому что у него есть поле add_by. Я делаю это с помощьюпереопределение execute_create. Это выглядит примерно так:

def perform_create(self, serializer):
  convo = Conversation.objects.get(pk = self.kwargs['pk])
  serializer.save(added_by = self.request.user, convo = convo)

Затем я переопределяю метод create в сериализаторе, беру каждый идентификатор в полученных данных и создаю участника в диалоге. Вот как это выглядиткак ca (псевдокод)

def create(self, validated_data):
  added_by = validated_data.pop('added_by')
  users = validated_data.pop('member_ids')
  convo = validated_data.pop('convo')
  added_members = []

 for u in users:
    added_members.append(ConvoMember.objects.create(convo = convo, user = u, added_by = added_by))

  return added_members // this fails because its expecting only one instance of ConvoMember
  // but i still need to be able to do this somehow.

Как мне вернуть все созданные мной объекты вместо того, чтобы возвращать только последний или что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...