title: DRF nested serializer not able to updated nested data
body: <p>I'm using <strong>Django 2.x</strong> and <strong>Django REST Framework</strong>.</p>
  
  <p>I have a nested serializer set.</p>
  
  <pre><code>class ListFieldSerializer(serializers.ModelSerializer):
      class Meta:
          model = ListField
          fields = [
              'id',
              'name',
              'field_type'
          ]
  
  
  class LeadListSerializer(serializers.ModelSerializer):
  
      list_fields = ListFieldSerializer(many=True, source='list_field')
  
      class Meta:
          model = LeadList
          fields = [
              'id',
              'lead_id',
              'name',
  
              'list_fields',
          ]
  
      @transaction.atomic
      def create(self, validated_data):
          list_fields = validated_data.pop('list_field', None)
  
          lead_list = self.Meta.model.objects.create(**validated_data)
  
          if list_fields:
              # Create fields
  
              for field in list_fields:
                  ListField.objects.create(
                      lead_list=lead_list,
                      **field
                  )
  
          return lead_list
  
      @transaction.atomic
      def update(self, instance, validated_data):
          list_fields = validated_data.pop('list_field', None)
  
          if list_fields:
              list_fields_dict = dict((i.id, i) for i in instance.list_field.all())
  
              for field in list_fields:
                  if 'id' in field:
                      # If exists id, remove from the dict and update
                      field_item = list_fields_dict.pop(field['id'])
  
                      field_item.name = field.get('name', field_item.name)
                      field_item.field_type = field.get('field_type', field_item.field_type)
                      field_item.is_required = field.get('is_required', field_item.is_required)
                      field_item.order = field.get('order', field_item.order)
                      field_item.save()
  
                  else:
                      # Create a new object
                      ListField.objects.create(lead_list=instance, **field)
  
          return super().update(instance, validated_data)
  </code></pre>
  
  <p>This is working fine for <strong>POST</strong> request. But when I send <strong>PATCH</strong> request with the following data, the <code>id</code> field is not retrieved in the serializer <code>update()</code> method and instead of update, it is creating a new instance for the fields.</p>
  
  <pre><code>{
      "name":"New name",
      "list_fields": [
          {
              "id": 8,
              "name": "Email"
          }
      ]
  }
  </code></pre>