title: Create nested serializer of same type with depth option support
body: <p>Assume there is a child and parent relation in models, such as:</p>
  
  <pre><code>class Foo(models.Model):
    parent = models.ForeignKey('Foo', related_name='children')
  </code></pre>
  
  <p>Now I want to have a serializer to show children of a <code>Foo</code> object, something like this:</p>
  
  <pre><code>class FooSerializer(serializers.ModelSerializer):
    children = FooSerializer(many=True)
    class Meta:
      model = Foo
      fields = '__all__'
  </code></pre>
  
  <p>But this gives me error that it does not recognize <code>FooSerializer</code> when creating that class which is correct regarding the way python parses the class. How could I implement such relation and have a serializer to get its children.
  I must mention that I want to able to use <code>depth</code> option of nested serializer.</p>
  
  <p>I am using django 2.2.7 and rest framework 3.10.1.</p>
  
  <p><strong>Edit</strong></p>
  
  <p>There may be some numbers of nested levels which it must be stopped using <code>depth</code> option, after some levels it must be flatten, so I wanted to able to use <code>depth</code> option along nested serializer.  </p>