title: Select field in form based on queryset in the same model
body: <p>I want a drop-down populated with the results of a queryset in my form for my coach_id field. I only want the user to be able to select one option, not multiple. I'm trying to use a ModelMultipleChoiceField... unsuccessfully.....</p>
  
  <pre><code>class PersonForm(forms.ModelForm):
      coach_id = forms.ModelMultipleChoiceField(queryset=Person.objects.filter(assign_as_coach="Person is a coach"), widget=forms.Select())
  
      class Meta:
          model = Person
          fields = [ 'id', 'first_name', 'surname', 'email', 'coach_id', 'assign_as_coach', 'position', 'contract_type']
          # exclude = ['initials', 'sam']
          labels = {
              'first_name': _('First Name'),
              'surname': _('Surname'),
              'email': _('Email'),
              'coach_id': _('Select Coach'),
              'assign_as_coach': _('Assign as a coach?'),
              'position': _('Position'),
              'contract_type': _('Contract Type'),
          }
  
          widgets = {
          'first_name': forms.TextInput(
              attrs={'placeholder': 'First Name', 'id': 'person-first-name'}
          ),
          'surname': forms.TextInput(
              attrs={'placeholder': 'Surname', 'id': 'person-surname'}
          ),
          'email': forms.TextInput(
              attrs={'placeholder': 'Email Address', 'id': 'person-email'}
          ),
          # 'coach_id': forms.Select(
          #   attrs={'placeholder': 'Select Coach', 'id': 'person-coach-id'}
          # ),
          'assign_as_coach': forms.Select(
              attrs={'placeholder': 'Assign person as a coach?', 'id': 'person-is-coach'}
          ),
          'position': forms.TextInput(
              attrs={'placeholder': 'Current position', 'id': 'person-position'}
          ),
          'contract_type': forms.Select(
              attrs={'placeholder': 'Select Contract Type', 'id': 'person-contract'}
          ),
  </code></pre>
  
  <p>Here is my model:</p>
  
  <pre><code>class Person(models.Model):
  
      FT = "Full-Time"
      PT = "Part-Time"
      C = "Contract"
      Z = "Zero hours"
  
      CONTRACT_CHOICES = (
      (FT, "Full-Time"),
      (PT, "Part-Time"),
      (C, "Contract"),
      (Z, "Zero hours"),
      )
  
      Y = "Yes"
      N = "No"
  
      IS_COACH_CHOICES = (
      (Y, "Person is a coach"),
      (N, "Person is NOT a coach"),
      )
  
  
      first_name = models.CharField(max_length=15, default='')
      surname = models.CharField(max_length=30, default='')
      initials = models.CharField(max_length=5, default='', null=True, blank=True)
      email = models.EmailField(default='', null=True, blank=True)
      coach_id = models.IntegerField(null=True)
      assign_as_coach = models.CharField(null=True, blank=True, choices=IS_COACH_CHOICES, default="Person is NOT a coach", max_length=5)
      position = models.CharField(max_length=30, default='', null=True, blank=True)
      contract_type = models.CharField(max_length=30, default='FT', choices=CONTRACT_CHOICES)
      user_name_check = models.CharField(max_length=30, default='', null=True, blank=True)
      def __unicode__ (self):
          return self.surname + ', ' + self.first_name
  </code></pre>
  
  <p>At the moment I have a coach_id select field rendering on my template, which has nothing in it and is badly formatted.</p>