title: mptt TreeNodeChoiceField filtered
body: <p>I am starting to work with django.
  In my project I am using MPTT.</p>
  
  <p>I have a fairly simple models. </p>
  
  <ul>
  <li>Category: (the tree) </li>
  <li>Product1: a reference and a foreign key to the category.</li>
  </ul>
  
  <p>I added the root to the Category model, just to simplify the search for the base category for one specific product</p>
  
  <p>models.py</p>
  
  <pre><code>class Category(MPTTModel):
      name = models.CharField(max_length=200)
      parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
  
      @property
      def root(self):
        return self.get_root().name
  
  class Product1(models.Model):
      ref = models.CharField(max_length=200, blank=True) #YVX2311
      category = TreeForeignKey(Category)
  </code></pre>
  
  <p>admin.py</p>
  
  <pre><code>admin.site.register(Category, MPTTModelAdmin)
  admin.site.register(Product)
  </code></pre>
  
  <p>What I would like is to modify the admin form, to be able to say something like.</p>
  
  <blockquote>
    <p>models.ForeignKey(Category, limit_choices_to = {root : 'Some
    Category for products1'})</p>
  </blockquote>
  
  <p>Of course this is not possible, but it does illustrate what I want.</p>
  
  <p>I want to be able to filter the TreeChoiseField to show only some branches based on a property on the model (root in this case).</p>
  
  <p>Thanks</p>