title: Serializing a reverse foreign key field w/ a custom related manager in Django Rest Framework
body: <p>All,</p>
  
  <p>I have 2 models linked together via a foreign key.  I am using a custom related manager on the reverse field.</p>
  
  <p><strong>models.py:</strong></p>
  
  <pre><code>class Foo(models.Model):
    name = models.CharField(max_length=23)
    bar = models.ForeignKey("Bar", related_name="foos")
  
  class Bar(models.Model):
    name = models.CharField(max_length=42)
    my_custom_manager = MyCustomManager()
  
  class MyCustomManager(models.Manager):
    use_for_related_fields = True
  
    def get_queryset(self):
      if self.instance.is_special():
        return do_something_special() # returns a list of Foos
      return super(MyCustomManager, self).get_queryset()
  </code></pre>
  
  <p>To use this I use the following code:</p>
  
  <pre><code>my_bar_instance.foos.add(my_foo_instance)
  my_bar_instance.foos(manager="my_custom_manager").all()
  </code></pre>
  
  <p>I know that this is a contrived example, but trust me that sometimes I need to do non-standard things when adding objects to this field.  Anyway, this code works fine.  The problem is when I try to serialize it.</p>
  
  <p><strong>serializers.py:</strong></p>
  
  <pre><code>class FoosField(serializers.RelatedField):
  
      queryset = Foo.objects.all()
  
      list_serializer_class = ListSerializer
  
      def to_representation(self, value):        
          if not value:
              return {}
  
          from .some_other_package import FooSerializer
          serializezr = FooSerializer()
          representation = serializezr.to_representation(value)
          return representation
  
      def to_internal_value(self, data):
          if not data:
              return None
  
          from .some_other_package import FooSerializer
          serializer = FooSerializer()
          internal_value = serializer.to_internal_value(data)
          return internal_value
  
  class BarSerializer(ModelSerializer):
  
      class Meta:
          model = Bar
          fields = (
              'id',
              'name',
              'foos',
          )
  
      foos = BarField(many=True, required=False, allow_null=True, queryset=Foo.objects.all())
  </code></pre>
  
  <p>It is just outputing an empty list for the "foos" field.  I suspect this is because it is calling the reverse relationship field <code>foos</code> directly instead of specifying the custom manager <code>foos(manager="my_custom_manager")</code>.  Any idea on how to tell Django Rest Framework to use the custom manager?</p>
  
  <p>Thanks</p>