То, что я делаю, - это отправка списка первичных ключей с другими данными в конечную точку, и я создаю экземпляр объекта для идентификатора, который находится в списке. Проблема в том, что я хочу затем вернуть все созданные мной объекты, но ожидается только один экземпляр объекта, поэтому он не будет работать.
Данные, которые я публикую в / 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.
Как мне вернуть все созданные мной объекты вместо того, чтобы возвращать только последний или что-то еще?