title: Return literal JSON instead of __str__ Django Rest Framework
body: <p>Whenever I declare an Abstract Model in Django to allow for nested models Django asks me to declare a <strong>str</strong> as string representation of that Model. The app I am writing is supposed to be an API returning JSON and instead of the actual object Django returns whatever I have defined as <strong>str</strong>.</p>
  
  <p>Example:</p>
  
  <p>My Model:</p>
  
  <pre class="lang-py prettyprint-override"><code>class SomeModel(models.Model):
    a = models.CharField()
    b = models.CharField()
  
    def __str__(self):
      return 'some string'
  
    class Meta:
      abstract = True
  
  </code></pre>
  
  <p>Parent Model:</p>
  
  <pre class="lang-py prettyprint-override"><code>class ParentModel(models.Model):
    someModel = models.EmbeddedModelField(
      model_container=SomeModel
    )
  </code></pre>
  
  <p>Serializer:</p>
  
  <pre class="lang-py prettyprint-override"><code>class ParentSerializer(serializers.ModelSerializer):
    class Meta:
      model = ParentModel
      fields = ('someModel')
  </code></pre>
  
  <p>View:</p>
  
  <pre class="lang-py prettyprint-override"><code>class ParentViewSet(viewsets.ModelViewSet):
    queryset = ParentModel.objects.all()
    serializer_class = ParentSerializer
  </code></pre>
  
  <p>Now, when I send an Object of <code>ParentModel</code> I would like to send something like this: <code>{ someModel: { a: 'something', b: 'something else' } }</code> and not whatever is defined in <code>__str__</code>.
  I understand, that I could define the <code>__str__</code> method to return all its fields as a string and then put the curly brackets around the output as strings as well, but there must be a better way to do this?</p>