title: Django nested serializer allow_null=True
body: <p>I have a nested serializer and I want to activate the allow_null to true, but it doesn't work.</p>
  
  <p>TOP object have a nested Down object, the related_name must be present in the TOP object but with a null value. If the down object is not null all down object fields are required.</p>
  
  <p>Example request with all fields in down object (this one works fine) :</p>
  
  <pre><code>{
    "title": "Titre new rgfdgfdgthtrh",
    "downs": {
       "type": "Type example",
       "is_external": true,
    },
  }
  </code></pre>
  
  <p>Example that i tryed to do : request when down object is null (this one doesn't work)</p>
  
  <pre><code>{
    "title": "Titre new ",
    "downs": {},
  }
  </code></pre>
  
  <p>I have tryed with "downs": None or Null without success.</p>
  
  <p>My views :</p>
  
  <pre><code># My Views.py
  
  class Top(models.Model):
    class Meta:
      verbose_name = _('Top')
      verbose_name_plural = _('Tops')
  
    top_guid = models.UUIDField(
      primary_key=True,
      unique=True,
      default=uuid.uuid4,
      editable=False)
  
    title = models.CharField(
      help_text=_('Title'),
      verbose_name=_('title'),
      max_length=100,
      blank=False
  )
  
  
  class Down(models.Model):
    top = models.OneToOneField(
      Top,
      on_delete=models.CASCADE,
      help_text=_('Top'),
      verbose_name="top",
      related_name="downs"
    )
  
    type = models.CharField(
      help_text=_('Type'),
      verbose_name=_('type'),
      max_length=30,
      blank=False
    )
  
    is_external = models.BooleanField(
      help_text=_('external (default = false)'),
      verbose_name=_('external'),
      blank=False,
      default=False
    )
  </code></pre>
  
  <p>and my serializers</p>
  
  <pre><code># My serializers.py
  
  class DownSerializer(serializers.ModelSerializer):
    class Meta:
      model = Down
      fields = '__all__'
  
  
  class TopSerializer(serializers.ModelSerializer):
    downs = DownSerializer(many=False, required=False, allow_null=True)
  
    class Meta:
      model = Top
      fields = ('top_guid', 'title', 'downs',)
  
    def create(self, validated_data):
      """
      Create and return a new `Topic` instance.
      """
      downs_data = validated_data.pop('downs')
      top = Top.objects.create(**validated_data)
      Down.objects.create(top=top, **downs_data)
      return top
  
    def update(self, instance, validated_data):
      """
      Update and return an existing `Topic` instance.
      """
      # get bim_snippet data and bim_snippet object
      downs_data = validated_data.pop('downs')
      downs = instance.downs
  
      # update top data and save top object
      instance.title = validated_data.get('title', instance.title)
      instance.top_type = validated_data.get('top_type', instance.top_type)
      instance.save()
  
      # update down data and save down object
      downs.snippet_type = downs_data.get('type', downs.snippet_type)
      downs.is_external = downs_data.get('is_external', downs.is_external)
      downs.save()
  
      return instance
  </code></pre>
  
  <p>Thank's a lot.</p>