title: choose serializer fields based on instance data
body: <p>I'm trying to dynamically include/exclude particular fields on my ModelSerializer depending on the instance itself.  So, assume I have a hierarchical model which represents geography using self-joins: </p>
  
  <pre><code>class TreeModel():
      name = CharField()
      kind = CharField(choices=['country', 'state', 'city'])
      parent = ForeignKey(self, related_name='children')
  </code></pre>
  
  <p>Given that, say I wanted to hide the 'children' relationship links of an instance when the kind is 'state' but then show it when the kind was 'country'.  I tried fiddling with <code>get_fields</code> method but that didn't work.  </p>
  
  <p>I'm looking to do this because in my model some instances of the TreeModel class have thousands of children, but others have only a few.  I don't want to show the children for certain instance types because it is killing performance and I only need them for a subset.  Thnaks</p>