Commit 685706ff by Tom Christie

Merge pull request #584 from radiosilence/master

Adding timedelta support to JSONEncoder, and an example of how to add decode support to a serializer.
parents e32aaa29 4fc3b1ba
...@@ -12,7 +12,7 @@ from rest_framework.serializers import DictWithMetadata, SortedDictWithMetadata ...@@ -12,7 +12,7 @@ from rest_framework.serializers import DictWithMetadata, SortedDictWithMetadata
class JSONEncoder(json.JSONEncoder): class JSONEncoder(json.JSONEncoder):
""" """
JSONEncoder subclass that knows how to encode date/time, JSONEncoder subclass that knows how to encode date/time/timedelta,
decimal types, and generators. decimal types, and generators.
""" """
def default(self, o): def default(self, o):
...@@ -34,6 +34,8 @@ class JSONEncoder(json.JSONEncoder): ...@@ -34,6 +34,8 @@ class JSONEncoder(json.JSONEncoder):
if o.microsecond: if o.microsecond:
r = r[:12] r = r[:12]
return r return r
elif isinstance(o, datetime.timedelta):
return str(o.total_seconds())
elif isinstance(o, decimal.Decimal): elif isinstance(o, decimal.Decimal):
return str(o) return str(o)
elif hasattr(o, '__iter__'): elif hasattr(o, '__iter__'):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment