summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorLukas Hetzenecker <lukas@splots.co>2015-06-23 22:56:22 +0200
committerClaude Paroz <claude@2xlibre.net>2015-06-24 18:41:25 +0200
commit6355a6d4f59eb220e05130d179beba7bb29c88af (patch)
tree2dfe2741a131947efc91ae93a34b2cfe208ad461 /django
parentc078021555dcda6b12363b5b0646eac5332a0d86 (diff)
Fixed #25019 -- Added UUID support in DjangoJSONEncoder
Diffstat (limited to 'django')
-rw-r--r--django/core/serializers/json.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py
index f67295edf9..764640465d 100644
--- a/django/core/serializers/json.py
+++ b/django/core/serializers/json.py
@@ -8,6 +8,7 @@ from __future__ import absolute_import, unicode_literals
import datetime
import decimal
import json
+import uuid
import sys
from django.core.serializers.base import DeserializationError
@@ -86,7 +87,7 @@ def Deserializer(stream_or_string, **options):
class DjangoJSONEncoder(json.JSONEncoder):
"""
- JSONEncoder subclass that knows how to encode date/time and decimal types.
+ JSONEncoder subclass that knows how to encode date/time, decimal types and UUIDs.
"""
def default(self, o):
# See "Date Time String Format" in the ECMA-262 specification.
@@ -108,6 +109,8 @@ class DjangoJSONEncoder(json.JSONEncoder):
return r
elif isinstance(o, decimal.Decimal):
return str(o)
+ elif isinstance(o, uuid.UUID):
+ return str(o)
else:
return super(DjangoJSONEncoder, self).default(o)