title: Django REST Framework (DRF): ModelSerializer does not validate models on serialization
body: <p>I want to ask how to use Django REST Framework (DRF) ModelSerializers correctly for serializing from model.</p>
  
  <p>I have Django model with two required fields:</p>
  
  <pre><code>class Book(models.Model):
      title = models.CharField()
      desc = models.CharField()
  </code></pre>
  
  <p>I have DRF ModelSerializer:</p>
  
  <pre><code>class BookSerializer(serializers.ModelSerializer):
      class Meta:
          model = Book
          fields = ['title', 'desc']
  </code></pre>
  
  <p>I can deseralize and validate incoming request using:</p>
  
  <pre><code>serializer = BookSerializer(data=request.data)
  serializer.is_valid(raise_exception=True)
  </code></pre>
  
  <p>But how to serialize and send response? DRF allows me to break contact built using ModelSerializer. If I forgot to set one of mandatory Book fields, it will still still pass through BookSerializer!</p>
  
  <pre><code>invalid_book = Book(title="Foo")    # but forgotten to set "desc"
  serializer = BookSerializer(instance=invalid_book)
  serializer.data        # it contains book without required "desc"
  </code></pre>
  
  <p>Serialized created using instance parameter throws error if I try <code>is_validate()</code>.</p>
  
  <p>Why ModelSerializer can validate incoming data, but cannot outgoing?</p>