title: Django IntegerField ignores specified default value when blank=True and empty string posted
body: <p>Consider the following model field:</p>
  
  <pre><code>myfield = models.IntegerField(_('My field'), blank=True, default=0)
  </code></pre>
  
  <p>If the myfield is completely omited from the post the default is properly used by default ModelForm implementation. However if empty string is posted for that field the field value stays None and postgres fails with the IntegrityError on non-null field:</p>
  
  <blockquote>
    <p><strong>IntegrityError</strong>: null value in column "myfield" violates not-null
    constraint</p>
  </blockquote>
  
  <p><strong>Question:</strong> How to enforce a default for both cases where either the myfield value is not present or present but empty string?</p>
  
  <p>What makes me think this is a django bug is ModelForm validation passes successfully but yet it fails to save the form. Although semantically field declaration is correct, and if empty string is not a valid value for a field the form validation should fail otherwise should ensure the field value gets assigned a proper integer.</p>
  
  <p>Implementing a clean method to replace empty strings with default value is possible but quite ugly. Looking for a better way to do this:</p>