title: Django Rest Framework update nested serializer
body: <p>I have a big misunderstanding with DRF nested serializers. I read docs about this and found out that I need to provide my own update method. So, here it is:</p>
  
  <pre><code>class SkillsSerializer(serializers.ModelSerializer):
  
  class Meta:
      model = Skills
  
  class ProfileSerializer(serializers.ModelSerializer):
      skills = SkillsSerializer(many=True)
  
      class Meta:
          model = Profile
          fields = ('user', 'f_name', 'l_name', 'bd_day', 'bd_month', 'bd_year', 'spec', 'company', 'rate', 'skills', 'bill_rate', 'website', 'about', 'city', 'avatar', 'filled')
  
      def update(self, instance, validated_data):
          instance.user_id = validated_data.get('user', instance.user_id)
          instance.f_name = validated_data.get('f_name', instance.f_name)
          instance.l_name = validated_data.get('l_name', instance.l_name)
          instance.bd_day = validated_data.get('bd_day', instance.bd_day)
          instance.bd_month = validated_data.get('bd_month', instance.bd_month)
          instance.bd_year = validated_data.get('bd_year', instance.bd_year)
          instance.spec = validated_data.get('spec', instance.spec)
          instance.company = validated_data.get('company', instance.company)
          instance.rate = validated_data.get('rate', instance.rate)
          instance.website = validated_data.get('website', instance.website)
          instance.avatar = validated_data.get('avatar', instance.avatar)
          instance.about = validated_data.get('about', instance.about)
          instance.city = validated_data.get('city', instance.city)
          instance.filled = validated_data.get('filled', instance.filled)
          instance.skills = validated_data.get('skills', instance.skills)
          instance.save()
          return instance
  </code></pre>
  
  <p>I compared it with docs and didn't found any difference. But in this case, when I try to update skills, it doesn't work. And there is a real magic: when I put this</p>
  
  <pre><code>instance.skills = validated_data.get('bd_day', instance.skills)
  </code></pre>
  
  <p>It works PERFECTLY WELL! For ex., if I put bd_day = 12, update method saves instance with skills with ID's 1 and 2.
  So, it seems like serializer ignores skills from AJAX data and still thinking, that skills serializer is read_only.
  So, what is a point of this logic and how I can finally update my skills?</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>My models:</p>
  
  <pre><code>class Skills(models.Model):
      tags = models.CharField(max_length='255', blank=True, null=True)
  
      def __unicode__(self):
          return self.tags
  
  
  class Profile(models.Model):
       user = models.OneToOneField(User, primary_key=True)
       ...
       skills = models.ManyToManyField(Skills, related_name='skills')
       ...
  </code></pre>
  
  <p><strong>UPDATE2</strong></p>
  
  <p>Still doesn't have any solution for this case! I tried <a href="https://stackoverflow.com/a/27585066/4149471">this</a> and <a href="https://github.com/tomchristie/django-rest-framework/issues/1556" rel="nofollow noreferrer">this</a> - the same result.
  It seems that serializer ignored JSON data at all.</p>