From 6ec2e2418e1b7898ce208f957d9823d5faf138ec Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 27 Mar 2014 17:06:46 +0100 Subject: [PATCH] djommon/serializers/json: fix missing import and not handled case of new models --- entrouvert/djommon/serializers/json.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/entrouvert/djommon/serializers/json.py b/entrouvert/djommon/serializers/json.py index 6cce440..5b931f3 100644 --- a/entrouvert/djommon/serializers/json.py +++ b/entrouvert/djommon/serializers/json.py @@ -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]) + +