Я новичок в DRF, и я пытаюсь написать специальный просмотр/сериализатор, который я могу использовать для обновления только одного поля пользовательского объекта.
Мне нужно сделать логику, чтобы обновить "имя" пользователя.
Я написал сериализатор:
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
Этот метод никогда не вызывается. Я попытался установить там контрольную точку и отладить ее, но ее никогда не вызывают, даже если я использую методы PUT, POST или PATCH. Если я добавлю метод create, он вызывается, когда я использую POST.
Это выглядит так:
class UpdateName(generics.CreateAPIView):
queryset = ClientUser.objects.all()
serializer_class = ClientNameSerializer
permission_classes = (permissions.IsAuthenticated,)
Есть ли у кого-нибудь предложение? Спасибо!
Мой models.py выглядит следующим образом
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)