summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/serializers/base.py6
-rw-r--r--django/core/serializers/json.py13
2 files changed, 11 insertions, 8 deletions
diff --git a/django/core/serializers/base.py b/django/core/serializers/base.py
index 8e610ad240..86d0037c17 100644
--- a/django/core/serializers/base.py
+++ b/django/core/serializers/base.py
@@ -105,9 +105,11 @@ class Serializer(object):
def getvalue(self):
"""
- Return the fully serialized queryset.
+ Return the fully serialized queryset (or None if the output stream is
+ not seekable).
"""
- return self.stream.getvalue()
+ if callable(getattr(self.stream, 'getvalue', None)):
+ return self.stream.getvalue()
class Deserializer(object):
"""
diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py
index 15770f160e..7c029e7029 100644
--- a/django/core/serializers/json.py
+++ b/django/core/serializers/json.py
@@ -17,9 +17,10 @@ class Serializer(PythonSerializer):
"""
def end_serialization(self):
simplejson.dump(self.objects, self.stream, cls=DateTimeAwareJSONEncoder, **self.options)
-
+
def getvalue(self):
- return self.stream.getvalue()
+ if callable(getattr(self.stream, 'getvalue', None)):
+ return self.stream.getvalue()
def Deserializer(stream_or_string, **options):
"""
@@ -31,15 +32,15 @@ def Deserializer(stream_or_string, **options):
stream = stream_or_string
for obj in PythonDeserializer(simplejson.load(stream)):
yield obj
-
+
class DateTimeAwareJSONEncoder(simplejson.JSONEncoder):
"""
JSONEncoder subclass that knows how to encode date/time types
"""
-
- DATE_FORMAT = "%Y-%m-%d"
+
+ DATE_FORMAT = "%Y-%m-%d"
TIME_FORMAT = "%H:%M:%S"
-
+
def default(self, o):
if isinstance(o, datetime.datetime):
return o.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT))