In django rest framework, PUT IS NOT WORKING IN api/root

This is my serializers.py code:

class ProductEnquirySerializer(serializers.HyperlinkedModelSerializer):
   productname = serializers.CharField(source='productname.pro_name')
   prodescriptions = serializers.CharField(source='prodescriptions.productdescription')
   type = serializers.CharField(source='type.category')
   class Meta:
        model = ProductEnquiry
        fields = ('id','productname','type','qty','prodescriptions')
   def create(self, validated_data):
        productname = validated_data.pop('productname','')
        validated_data.update({'productname_id': productname['pro_name']})
        type = validated_data.pop('type','')
        validated_data.update({'type_id': type['category']})
        prodescriptions = validated_data.pop('prodescriptions','')
        validated_data.update({'prodescriptions_id': prodescriptions['productdescription']})
        productenquiry = ProductEnquiry.objects.create(**validated_data)
        return productenquiry
   def update(self, instance, validated_data):
       instance.productname_id = validated_data.get('productname_id', instance.productname_id)
       instance.type_id = validated_data.get('type_id', instance.type_id)
       instance.qty = validated_data.get('qty', instance.qty)
       instance.prodescriptions_id = validated_data.get('prodescriptions_id', instance.prodescriptions_id)
       instance.save()
       return instance

Field without dropdown(qty) are getting updated using PUT method in django rest framework(api/root) but in dropdown values(foriegn keys : productname_id,prodescriptions_id,type_id), no changes occurs. how to change my code in 'update(self, instance, validated_data):' ?

enter image description here