title: How to Modify Choices of ModelMultipleChoiceField
body: <p>Let's say I have some contrived models:</p>
  
  <pre><code>class Author(Model):
     name = CharField()
  
  class Book(Model):
     title = CharField()
     author = ForeignKey(Author)
  </code></pre>
  
  <p>And let's say I want to use a ModelForm for Book:</p>
  
  <pre><code>   class BookForm(ModelForm):
        class Meta:
           model = Book
  </code></pre>
  
  <p>Simple so far.  But let's also say that I have a ton of Authors in my database, and I don't want to have such a long multiple choice field.  So, I'd like is to restrict the queryset on the BookForm's ModelMultipleChoiceField author field.  Let's also say that the queryset I want can't be chosen until <code>__init__</code>, because it relies on an argument to be passed.</p>
  
  <p>This seems like it might do the trick:</p>
  
  <pre><code>class BookForm(ModelForm):
     class Meta:
        model = Book
  
     def __init__(self, letter):
        # returns the queryset based on the letter
        choices = getChoices(letter)
        self.author.queryset = choices
  </code></pre>
  
  <p>Of course, if that just worked I wouldn't be here.  That gets me an AttributeError.  'BookForm' object has no attribute 'author'.  So, I also tried something like this, where I try to override the ModelForm's default field and then set it later:</p>
  
  <pre><code>class BookForm(ModelForm):
     author = ModelMultipleChoiceField(queryset=Author.objects.all())
  
     class Meta:
        model = Book
  
     def __init__(self, letter):
        choices = getChoices(letter)
        self.author.queryset = choices
  </code></pre>
  
  <p>Which produces the same result.</p>
  
  <p>Anyone know how this is intended to be done?</p>