我正在尝试使用 Django Rest Framework 为特定模型构建批量更新视图。在短期内,它只需要更新一个字段(将邀请从提交=假切换到提交=真),但我希望它能够在未来提供更多功能。然而,每当我测试视图时,都会创建一个新对象,而不是修改当前对象。
我觉得这一定是我的一个简单错误,但我无法弄清楚发生了什么。序列化程序对象似乎忽略了通过 JSON 传入的“id”值,这可能是导致问题的原因。当前代码是:
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')
任何人都可以阐明我可能做错了什么吗?