Tôi đang cố gắng xây dựng một chế độ xem cập nhật hàng loạt cho một mô hình cụ thể bằng cách sử dụng Django Rest Framework. Trong ngắn hạn, nó chỉ cần cập nhật một trường (chuyển đổi lời mời từ được gửi = False để gửi = True), nhưng tôi muốn nó có thể cung cấp thêm chức năng trong tương lai. Bất cứ khi nào tôi kiểm tra xem, tuy nhiên, một đối tượng mới đang được tạo ra thay vì hiện tại đang được sửa đổi.Django Rest Framework cập nhật số lượng lớn chèn thay vì cập nhật
Tôi cảm thấy như đây phải là một sai lầm đơn giản về phía tôi, nhưng tôi không thể tìm ra những gì đang xảy ra. Đối tượng serializer dường như bỏ qua giá trị cho "id" được truyền qua JSON, điều này có thể góp phần vào vấn đề. Mã hiện tại là:
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')
Ai có thể làm sáng tỏ những gì tôi có thể làm sai không?
Bạn đã đúng; phần còn thiếu đã thiết lập queryset. Tôi không chắc những gì tôi đã thay đổi từ lần thử trước, nhưng trước khi đăng bài, tôi đã cố gắng chuyển qua một queryset và nhận được thông báo lỗi rằng serializer.save() không phải là thuộc tính, vì vậy tôi cho rằng nó đã gây ra vấn đề. Có nó làm việc, cảm ơn! – user2708386