title: django-rest-framework clarification on field "required" option
body: <p>I have the following serializer:</p>
  
  <pre><code>class ReqSerializer(serializers.ModelSerializer):
        class Meta:
             model = Earth
             fields = ('area', )
  </code></pre>
  
  <p>and this model:</p>
  
  <pre><code>class Earth(models.Model):
        area = models.IntegerField(default=0)
  </code></pre>
  
  <p>According to django-rest-framework <a href="http://www.django-rest-framework.org/api-guide/fields/" rel="nofollow">Serializer fields</a> the "<strong>required</strong>" option is 
  set to True by default which means if I try to validate the serializer without "area" field in the input,
  I should get <code>This field is required</code> error. But <code>is_valid()</code> is passed and the model gets created with default <code>area=0</code>. However, Using this:</p>
  
  <pre><code> extra_kwargs = {
       area': {'required': True},
   }
  </code></pre>
  
  <p>Would solve the issue but why? What could change this behavior? Why the default "required=True"
  has no effect?</p>
  
  <p><strong>Update:</strong>
  I just noticed that if I remove the <code>default=0</code> from the model, it will work as expected. Now the question is why setting default on model field cancels the <code>required=True</code> on serializer.</p>