djommon/serializers/json: fix missing import and not handled case of new models

This commit is contained in:
Benjamin Dauvergne 2014-03-27 17:06:46 +01:00
parent ddb023481b
commit 6ec2e2418e
1 changed files with 9 additions and 2 deletions

View File

@ -1,4 +1,5 @@
import json
import sys
from django.utils import six
from django.core.serializers.json import Serializer as JSONSerializer
@ -26,8 +27,12 @@ def Deserializer(stream_or_string, **options):
for obj in objects:
Model = _get_model(obj['model'])
if isinstance(obj['pk'], (tuple, list)):
o = Model.objects.get_by_natural_key(*obj['pk'])
obj['pk'] = o.pk
try:
o = Model.objects.get_by_natural_key(*obj['pk'])
except Model.DoesNotExist:
obj['pk'] = None
else:
obj['pk'] = o.pk
for obj in PythonDeserializer(objects, **options):
yield obj
except GeneratorExit:
@ -35,3 +40,5 @@ def Deserializer(stream_or_string, **options):
except Exception as e:
# Map to deserializer error
six.reraise(DeserializationError, DeserializationError(e), sys.exc_info()[2])