so heres my serializer class:
class HeroSerializer(serializers.ModelSerializer):
class Meta:
model=Hero
fields=['id','name','secret_identity']
and my view :
@api_view(['PUT', ])
def api_hero_update(request, name):
try:
character = Hero.objects.get(name=name)
except:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = serializers.HeroSerializer(character, data=request.data)
message={}
if serializer.is_valid():
serializer.save()
print(serializer.data)
message["success"]="Update Successful"
return Response(data=message)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
Let a model object has fields name and secret_identity. and i want to update its name only but the line
serializer = serializers.HeroSerializer(character, data=request.data)
doesnt allow me to update only , one field . how to update only one field?
you have to add partial=True
attribute to serializer object. i.e. use this
serializer = serializers.HeroSerializer(character, data=request.data, partial=True)