title: Django choice field populated by queryset - save id but show value
body: <p>I have two models, <code>Tag</code> and <code>TagGroup</code>.</p>
  
  <pre><code>class TagGroup(models.Model):
      tag_group_name = models.CharField(max_length=100)
  
  class Tag(models.Model):
      tag_name = models.CharField(max_length=100)
      tag_group = models.ForeignKey(TagGroup, blank=True, null=True)
  </code></pre>
  
  <p>I've put a <code>TagGroup</code> form as a choice field into a template so that I can assign a <code>TagGroup</code> to a Tag.  I created this form to populate from a <code>TagGroup</code> queryset.</p>
  
  <pre><code>class TagGroupForm(ModelForm):
      tag_group_name = forms.ModelChoiceField(queryset=TagGroup.objects.values_list('id', 'tag_group_name'), required=False)
  
      class Meta:
          model = TagGroup
          fields = [
              'tag_group_name'
          ]
  </code></pre>
  
  <p>I haven't seen any obvious instructions how I can assign the Id to the Tag table while showing the user only the Tag value in the choice field in the template.</p>
  
  <p>Currently the above shows:</p>
  
  <p><a href="https://i.stack.imgur.com/7I0Km.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7I0Km.png" alt="enter image description here"></a></p>
  
  <p>Couple of questions:</p>
  
  <ol>
  <li><p>is the queryset correct? I have tried without "<code>values_list</code>" but it then just shows an "Object" in the form field in template?</p></li>
  <li><p>how do i 'hide' the Id so i can save on it, while only showing the user the actual string value in the form field?</p></li>
  </ol>
  
  <hr>
  
  <p>Edited to add updated form:</p>
  
  <pre><code>class TagGroupForm(ModelForm):
      tag_group_name = forms.ModelChoiceField(queryset=TagGroup.objects.all(), to_field_name = 'tag_group_name', required=False)
  
      class Meta:
          model = TagGroup
          fields = [
              'tag_group_name'
          ]
  </code></pre>
  
  <p>this now produces the following .. looks close .. the form value has a nice string but the actual value displayed to user is still "TagGroup object".  How to get this to show?</p>
  
  <p><a href="https://i.stack.imgur.com/hIwrJ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hIwrJ.png" alt="enter image description here"></a></p>