Я пытаюсь создать массовое представление обновления для конкретной модели с использованием Django Rest Framework. В краткосрочной перспективе необходимо обновить только одно поле (переключая приглашение от отправленного = False на отправленный = True), но я бы хотел, чтобы он мог обеспечить больше функциональности в будущем. Однако, когда я проверяю представление, создается новый объект вместо текущего, который изменяется.Django Rest Framework массовые обновления вставки вместо обновления
Я чувствую, что это должна быть простая ошибка с моей стороны, но я не могу понять, что происходит. Объект serializer, по-видимому, игнорирует значение «id», переданное через JSON, что может способствовать этому вопросу. Текущий код:
class InviteBulkUpdateView(generics.UpdateAPIView):
def get_queryset(self):
order = self.kwargs['order']
invite = get_objects_for_user(self.request.user, 'sourcing.view_invite')
return invite.filter(order=order)
serializer_class = InviteInputSerializer
def put(self, request, *args, **kwargs):
data = request.DATA
serializer = InviteInputSerializer(data=data, many=True)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_200_OK)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
class InviteInputSerializer(serializers.ModelSerializer):
class Meta:
model = Invite
fields = ('id', 'order', 'team', 'submitted')
Может кто-нибудь пролить свет на то, что я могу сделать неправильно?
Вы были права; отсутствующая деталь настраивала запрос. Я не уверен, что я изменил с предыдущей попытки, но до моего сообщения я попытался передать запрос и получил ошибку, заявив, что serializer.save() не был атрибутом, поэтому я предположил, что это вызвало проблему. Получил это работу, спасибо! – user2708386