Author: russellm
Date: 2007-03-15 02:44:44 -0500 (Thu, 15 Mar 2007)
New Revision: 4733

Modified:
   django/trunk/django/core/serializers/xml_serializer.py
Log:
Added implementation of --indent for the XML serializer.


Modified: django/trunk/django/core/serializers/xml_serializer.py
===================================================================
--- django/trunk/django/core/serializers/xml_serializer.py      2007-03-15 
03:25:47 UTC (rev 4732)
+++ django/trunk/django/core/serializers/xml_serializer.py      2007-03-15 
07:44:44 UTC (rev 4733)
@@ -13,6 +13,10 @@
     Serializes a QuerySet to XML.
     """
     
+    def indent(self, level):
+        if self.options.get('indent', None) is not None:
+            self.xml.ignorableWhitespace('\n' + ' ' * 
self.options.get('indent', None) * level)
+
     def start_serialization(self):
         """
         Start serialization -- open the XML document and the root element.
@@ -25,6 +29,7 @@
         """
         End serialization -- end the document.
         """
+        self.indent(0)
         self.xml.endElement("django-objects")
         self.xml.endDocument()
         
@@ -35,6 +40,7 @@
         if not hasattr(obj, "_meta"):
             raise base.SerializationError("Non-model object (%s) encountered 
during serialization" % type(obj))
             
+        self.indent(1)
         self.xml.startElement("object", {
             "pk"    : str(obj._get_pk_val()),
             "model" : str(obj._meta),
@@ -44,6 +50,7 @@
         """
         Called after handling all fields for an object.
         """
+        self.indent(1)
         self.xml.endElement("object")
         
     def handle_field(self, obj, field):
@@ -51,6 +58,7 @@
         Called to handle each field on an object (except for ForeignKeys and
         ManyToManyFields)
         """
+        self.indent(2)
         self.xml.startElement("field", {
             "name" : field.name,
             "type" : field.get_internal_type()
@@ -94,6 +102,7 @@
         """
         Helper to output the <field> element for relational fields
         """
+        self.indent(2)
         self.xml.startElement("field", {
             "name" : field.name,
             "rel"  : field.rel.__class__.__name__,


--~--~---------~--~----~------------~-------~--~----~
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=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to