Tôi mới dùng DRF và tôi đang cố gắng viết trình xem/serializer tùy chỉnh mà tôi có thể sử dụng để cập nhật chỉ một trường đối tượng người dùng.Trường cập nhật khung Django
Tôi cần thực hiện logic chỉ để cập nhật "tên" của người dùng.
tôi đã viết serializer:
class ClientNameSerializer(serializers.ModelSerializer):
class Meta:
model = ClientUser
fields = ('name',)
def update(self, instance, validated_data):
instance.name = validated_data.get('name', instance.name)
instance.save()
return instance
Phương pháp này không bao giờ được gọi. Tôi đã thử đặt breakpoint ở đó và gỡ lỗi nó, nhưng nó không bao giờ được gọi, ngay cả khi tôi sử dụng các phương thức PUT, POST hoặc PATCH. Nếu tôi thêm , hãy tạo phương thức mà nó đang được gọi khi tôi sử dụng POST.
Đây là cách nhìn của tôi trông giống như:
class UpdateName(generics.CreateAPIView):
queryset = ClientUser.objects.all()
serializer_class = ClientNameSerializer
permission_classes = (permissions.IsAuthenticated,)
Có ai có một số gợi ý? Cảm ơn!
My models.py trông như thế này
class ClientUser(models.Model):
owner = models.OneToOneField(User,unique=True,primary_key=True)
phone_number = models.CharField(validators=[PHONE_REGEX],max_length=20,unique=True)
name = models.CharField(max_length=100,blank=True)
status = models.IntegerField(default=1)
member_from = models.DateTimeField('member from',auto_now_add=True)
is_member = models.BooleanField(default=False)
Bạn cũng có thể thêm mã cho 'models.py' hay không. –
@RahulGupta Tôi đã thêm mô hình của mình. Cảm ơn! – bla0009