Jestem nowy w DRF i próbuję napisać niestandardowy widok/serializer, którego mogę użyć do aktualizacji tylko jednego pola obiektu użytkownika.Pole aktualizacji Django Rest Framework
Potrzebuję logiki tylko po to, aby zaktualizować "nazwę" użytkownika.
pisałem serializatora:
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
Metoda ta nigdy nie jest wywoływana. Próbowałem ustawić tam punkt przerwania i debugować go, ale nigdy nie jest wywoływany, nawet jeśli używam metod PUT, POST lub PATCH. Jeśli dodaję , stwórz metodę, która jest wywoływana, gdy używam POST.
Tak moim zdaniem wygląda następująco:
class UpdateName(generics.CreateAPIView):
queryset = ClientUser.objects.all()
serializer_class = ClientNameSerializer
permission_classes = (permissions.IsAuthenticated,)
Czy ktoś ma jakieś sugestie? Dzięki!
Moja models.py wygląda to
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)
Czy można również dodać kod dla "models.py". –
@RahulGupta Dodałem mój model. Dzięki! – bla0009