I am new to Django rest framework and tying to update existing data in database. But in place of update a new data is added into database.
serializers.py
class CustomersSerializer(serializers.Serializer):
lname = serializers.CharField(max_length=10)
fname = serializers.CharField(max_length=10)
def create(self, validated_data):
return Customers.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.fname = validated_data.get('fname', instance.fname)
instance.lname = validated_data.get('lname', instance.lname)
instance.save()
return instance
view.py
def UpdateData(request): # Not Working
user = Customers.objects.get(id=1)
serialize = CustomersSerializer(user)
json_data = JSONRenderer().render(serialize.data)
stream = io.BytesIO(json_data)
data = JSONParser().parse(stream)
serializer = CustomersSerializer(data=data)
if serializer.is_valid():
temp_dict = serializer.validated_data
temp_dict['fname'] = "abcd"
serializer.save()
return HttpResponse("Updated..")
If my whole process is wrong someone please suggest me some good resources to understand serializers and django rest framework.
What i have learned is Calling .save() will either create a new instance, or update an existing instance, depending on if an existing instance was passed when instantiating the serializer class.