i have model:
class userprofile(models.model): user = models.onetoonefield(user, related_name='profile') stuff = models.textfield(default='') user.profile = property(userprofile) with serializer:
class userprofileserializer(userserializer): stuff = serializers.serializermethodfield() def get_stuff(self, obj): return obj.profile.stuff def update(self, instance, validated_data): instance.profile.stuff = validated_data.get('stuff', instance.profile.stuff) instance.save() return instance with endpoint:
class updateuserprofile(updateapiview): model = userprofile serializer_class = userprofileserializer permission_classes = [permissions.isauthenticated] def get_object(self): return self.request.user when call http/put update stuff field, doesn't update. don't know why.
if update method executing , getting instance.profile in method. issue happens @
instance.profile.stuff = validated_data.get('stuff', instance.profile.stuff) instance.save() you need update profile instance.
instance.profile.stuff = validated_data.get('stuff', instance.profile.stuff) instance.profile.save() "instance.profile.save()" update profile instance.
Comments
Post a Comment