Reputation: 6723
I have following serializer:
class ProfileSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Profile
fields = (
'pk',
'user',
'isAdmin',
'isAccountant',
'isAuditor',
'isManager'
)
def update(self, instance, validated_data):
instance.isAdmin = validated_data['isAdmin']
instance.isAccountant = validated_data['isAccountant']
instance.isAuditor = validated_data['isAuditor']
instance.isManager = validated_data['isManager']
user = validated_data.pop('user')
u = User.objects.get(email=user['email'])
u.first_name = user['first_name']
u.last_name = user['last_name']
u.username = user['email']
u.email = user['email']
u.save()
return instance
when I send PUT request, in response I get updated data. But in database it remains the same.
What am I doing wrong ?
Upvotes: 0
Views: 22
Reputation: 20976
You don't save instance
:
def update(self, instance, validated_data):
instance.isAdmin = validated_data['isAdmin']
instance.isAccountant = validated_data['isAccountant']
instance.isAuditor = validated_data['isAuditor']
instance.isManager = validated_data['isManager']
instance.save()
user = validated_data.pop('user')
u = User.objects.get(email=user['email'])
u.first_name = user['first_name']
u.last_name = user['last_name']
u.username = user['email']
u.email = user['email']
u.save()
return instance
Upvotes: 1