Author: Alex
Date: 2009-11-23 10:44:22 -0600 (Mon, 23 Nov 2009)
New Revision: 11771
Modified:
django/branches/soc2009/multidb/django/core/serializers/base.py
django/branches/soc2009/multidb/tests/modeltests/serializers/models.py
Log:
[soc2009/multidb] Fix the output method of DeserializedObject - we can't assume
deserialized objects already exist in the database. Patch from Russell
Keith-Magee.
Modified: django/branches/soc2009/multidb/django/core/serializers/base.py
===================================================================
--- django/branches/soc2009/multidb/django/core/serializers/base.py
2009-11-23 16:44:05 UTC (rev 11770)
+++ django/branches/soc2009/multidb/django/core/serializers/base.py
2009-11-23 16:44:22 UTC (rev 11771)
@@ -152,7 +152,8 @@
self.m2m_data = m2m_data
def __repr__(self):
- return "<DeserializedObject: %s>" % smart_str(self.object)
+ return "<DeserializedObject: %s.%s(pk=%s)>" % (
+ self.object._meta.app_label, self.object._meta.object_name,
self.object.pk)
def save(self, save_m2m=True, using=None):
# Call save on the Model baseclass directly. This bypasses any
Modified: django/branches/soc2009/multidb/tests/modeltests/serializers/models.py
===================================================================
--- django/branches/soc2009/multidb/tests/modeltests/serializers/models.py
2009-11-23 16:44:05 UTC (rev 11770)
+++ django/branches/soc2009/multidb/tests/modeltests/serializers/models.py
2009-11-23 16:44:22 UTC (rev 11771)
@@ -149,8 +149,8 @@
# database since the data was serialized (we'll simulate that below).
>>> for obj in serializers.deserialize("xml", xml):
... print obj
-<DeserializedObject: Poker has no place on ESPN>
-<DeserializedObject: Time to reform copyright>
+<DeserializedObject: serializers.Article(pk=1)>
+<DeserializedObject: serializers.Article(pk=2)>
# Deserializing data with different field values doesn't change anything in the
# database until we call save():
@@ -183,8 +183,8 @@
>>> json = serializers.serialize("json", Article.objects.all())
>>> for obj in serializers.deserialize("json", json):
... print obj
-<DeserializedObject: Poker has no place on television>
-<DeserializedObject: Time to reform copyright>
+<DeserializedObject: serializers.Article(pk=1)>
+<DeserializedObject: serializers.Article(pk=2)>
>>> json = json.replace("Poker has no place on television", "Just kidding; I
>>> love TV poker")
>>> for obj in serializers.deserialize("json", json):
@@ -205,7 +205,7 @@
>>> for obj in serializers.deserialize("json", json):
... print obj
-<DeserializedObject: Profile of Joe>
+<DeserializedObject: serializers.AuthorProfile(pk=1)>
# Objects ids can be referenced before they are defined in the serialization
data
# However, the deserialization process will need to be contained within a
transaction
@@ -275,7 +275,7 @@
>>> obj = list(serializers.deserialize("json", serialized))[0]
>>> print obj
-<DeserializedObject: Soslan Djanaev (1) playing for Spartak Moskva>
+<DeserializedObject: serializers.Player(pk=1)>
"""}
@@ -310,8 +310,8 @@
>>> obs = list(serializers.deserialize("yaml", serialized))
>>> for i in obs:
... print i
-<DeserializedObject: Just kidding; I love TV poker>
-<DeserializedObject: Time to reform copyright>
+<DeserializedObject: serializers.Article(pk=1)>
+<DeserializedObject: serializers.Article(pk=2)>
# Custom field with non trivial to string convertion value with YAML serializer
@@ -324,7 +324,7 @@
>>> serialized = serializers.serialize("yaml", Player.objects.all())
>>> obj = list(serializers.deserialize("yaml", serialized))[0]
>>> print obj
-<DeserializedObject: Soslan Djanaev (1) playing for Spartak Moskva>
+<DeserializedObject: serializers.Player(pk=1)>
"""
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=.