title: Django why does my null boolean field save as True in my SQL table?
body: <p>Here's what's in my models.py:</p>
  
  <pre><code>class GraduationApp(models.Model):
      id = models.AutoField(primary_key=True)
      addr_to_photographer = models.NullBooleanField(blank=True, null=True)
      class Meta:
          db_table = u'graduation_app'
  </code></pre>
  
  <p>Here's what's in my forms.py:</p>
  
  <pre><code>BOOLEAN_CHOICES = (
                 (None,' '),
                 (True,'Yes'),
                 (False,'No')
                 )
  class EnterAppForm(ModelForm):
      addr_to_photographer = forms.ChoiceField(choices=BOOLEAN_CHOICES, required=False)
      class Meta:
          model = GraduationApp
          fields=('addr_to_photographer')
  </code></pre>
  
  <p>Here's what's in my template:</p>
  
  <pre><code>Address to Photographer? {{ form.addr_to_photographer }}
  </code></pre>
  
  <p>Here's my save in the views.py:</p>
  
  <pre><code>print 'your POST address_to_photographer is', request.POST['addr_to_photographer']
  print 'your form.cleaned_data addr_to_photographer is', form.cleaned_data['addr_to_photographer']
  updapp = GraduationAppForm.objects.get(id=request.POST['app_id'])
  updapp.addr_to_photographer = form.cleaned_data['addr_to_photographer']
  updapp.save()
  print 'YOU JUST UPDATED ME', updapp.person.eid, 'ADDR TO PHOTO IS', updapp.addr_to_photographer
  </code></pre>
  
  <p>I am getting these print statements:</p>
  
  <p><strong>your POST address_to_photographer is False</strong></p>
  
  <p><strong>your form.cleaned_data addr_to_photographer is False</strong></p>
  
  <p><strong>YOU JUST UPDATED ME oy278 ADDR TO PHOTO IS (u'False',)</strong></p>
  
  <p>But when I go look at the field in MySQL, it has a 1 in it, instead of a 0.
  HELP!</p>