title: Django ModelForm ChoiceField not displaying instance data
body: <p>I have a <code>ModelForm</code> class in which I set a couple of the fields as <code>ChoiceField</code>.  For one of my views, I'd like to create a form from my <code>ModelForm</code> class that pulls from an instance of my model in the database (like so):</p>
  
  <pre><code>form = MyModel(instance=model_instance)
  </code></pre>
  
  <p>When I do this and then render the form in a template, I've noticed that most of the fields are pre-populated with values pulled from the model instance, which is what I want.  However, this isn't the case for two <code>ChoiceField</code> fields.  These render as drop-down select menus with no specific option selected.</p>
  
  <p>What's strange is if I don't define those two fields as <code>ChoiceField</code>-type in my ModelForm class, they render as normal text input fields in HTML and pre-populate using the database values.  But when I define them so they show up as select-option input fields in HTML, nothing is pre-selected.  Can I change this so that the values from the database are pre-selected?</p>
  
  <p><strong>EDIT:</strong> As requested here is the code for my model and form:</p>
  
  <pre><code>class App(models.Model):
      CODES = (
          (u'a',u'annual'),
          (u'm',u'monthly'),
          (u'w',u'weekly')
      )
      code = models.CharField(max_length=1, choices=CODES)
      start_time = models.TimeField(blank=True, null=True)
      end_time = models.TimeField(blank=True, null=True)
  
  
  class AppForm(ModelForm):
      CODES = (
          (u'',u'Please select code'),
          (u'a',u'annual'),
          (u'm',u'monthly'),
          (u'w',u'weekly')
      )
      TIMES = (
          (u'00:00',u'All Day'),
          (u'12:00',u'Noon')
      )
      start_time = forms.ChoiceField(required=False, choices=TIMES)
      end_time = forms.ChoiceField(required=False, choices=TIMES)
      code = forms.ChoiceField(choices=CODES, label='Type')
  
      class Meta:
          model = App
  </code></pre>
  
  <p>Interestingly, <code>code</code> field has the model instance value preselected just fine when rendered as HTML.  I wonder if having the <code>choices</code> argument in the model definition makes the difference here?</p>
  
  <p><strong>UPDATE:</strong> I just noticed that if I pull up an <code>App</code> instance in the <code>python manage.py shell</code> like so: </p>
  
  <pre><code>a = App.objects.get(id=16)
  a.start_time
  </code></pre>
  
  <p>I get a value like <code>datetime.time(12, 0)</code>.  But in the Django admin, when I'm looking at all of the <code>App</code> instances, all of them show <code>(None)</code> under <code>start_time</code> and <code>end_time</code>.  Why would that be?</p>