diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 5aef1df69..c67ebeafd 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -13,6 +13,7 @@ response content is handled by parsers and renderers. from __future__ import unicode_literals import warnings +import traceback from django.db import models from django.db.models.fields import Field as DjangoModelField @@ -844,18 +845,19 @@ class ModelSerializer(Serializer): try: instance = ModelClass.objects.create(**validated_data) except TypeError as exc: + tb = traceback.format_exc() msg = ( 'Got a `TypeError` when calling `%s.objects.create()`. ' 'This may be because you have a writable field on the ' 'serializer class that is not a valid argument to ' '`%s.objects.create()`. You may need to make the field ' 'read-only, or override the %s.create() method to handle ' - 'this correctly.\nOriginal exception text was: %s.' % + 'this correctly.\nOriginal exception was:\n %s.' % ( ModelClass.__name__, ModelClass.__name__, self.__class__.__name__, - exc + tb ) ) raise TypeError(msg)