title: Django forms ModelChoiceField Use __Str__ or label_for_Instance and how?
body: <p>Upon rendering ModelChoiceField as radio buttons in the template it returns <code>shareholder Object(2)</code> as opposed to data in the field name.</p>
  <p>Somewhere in my view</p>
  <pre class="lang-py prettyprint-override"><code>form.fields['shareholder'] = forms.ModelChoiceField(
                                    empty_label=None,
                                    queryset=ShareHolder.objects.filter(session_key=mykey),
                                    to_field_name=&quot;id&quot;,
                                    widget=forms.RadioSelect(),
                                    required=False
                                  )
  </code></pre>
  <p>In my template</p>
  <pre class="lang-html prettyprint-override"><code>{%  for sh in form.shareholder %}
    &lt;div class=&quot;radio-group&quot;&gt;{{ sh }}&lt;/div&gt;
  {% endfor %}
  </code></pre>
  <p>my model is</p>
  <pre><code>class ShareHolder(models.Model):
      session_key = models.CharField(max_length=40, null=True)
  
      # Person
      first_name = models.CharField(max_length=25, null=True, blank=True)
      middle_name = models.CharField(max_length=25, null=True, blank=True)
      last_name = models.CharField(max_length=25, null=True, blank=True)
  
      # Company
      company_name = models.CharField(max_length=256, null=True, blank=False)
  </code></pre>
  <p>Now I could use the good old <code>__str__</code> function and I would get my values, but is there an alternative?</p>
  <p>I tried to used to add the following in my forms file</p>
  <pre class="lang-py prettyprint-override"><code>class MyModelChoiceField(ModelChoiceField):
      def label_from_instance(self, obj):
          return &quot;My Object #%i&quot; % obj.id
  </code></pre>
  <p>and then replace the view code with</p>
  <pre class="lang-py prettyprint-override"><code>form.fields['shareholder'] = forms.MyModelChoiceField(
  </code></pre>
  <p>But when I run this it says module cannot find MyModelChoiceField.
  Having said this I don't understand how the lable_form_instance works in the first place.</p>
  <p>My fear with using <code>__str__</code> is that if I need to use the model another way then <code>__Str__</code> will need to be changed.</p>
  <p>Any pointers?</p>