Sono nuovo in DRF e sto cercando di scrivere una vista personalizzata/serializzatore che posso utilizzare per aggiornare solo un campo dell'oggetto utente.Campo aggiornamento Django Rest Framework
Ho bisogno di fare la logica solo per aggiornare il "nome" dell'utente.
ho scritto serializzatore:
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
Questo metodo non viene mai chiamato. Ho provato a impostare il breakpoint lì e il debug, ma non viene mai chiamato, anche se uso i metodi PUT, POST o PATCH. Se aggiungo il al metodo viene chiamato quando utilizzo POST.
Ecco come il mio vista assomiglia:
class UpdateName(generics.CreateAPIView):
queryset = ClientUser.objects.all()
serializer_class = ClientNameSerializer
permission_classes = (permissions.IsAuthenticated,)
Qualcuno ha qualche suggerimento? Grazie!
mio models.py assomiglia a questo
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)
È possibile aggiungere anche il codice per 'models.py'. –
@RahulGupta Ho aggiunto il mio modello. Grazie! – bla0009