|
@@ -13,7 +13,7 @@ from django.apps import apps
|
|
|
from django.conf import settings
|
|
|
from django.core.serializers import base
|
|
|
from django.db import DEFAULT_DB_ALIAS, models
|
|
|
-from django.utils.encoding import smart_text
|
|
|
+from django.utils.encoding import force_text
|
|
|
from django.utils.xmlutils import (
|
|
|
SimplerXMLGenerator, UnserializableContentError,
|
|
|
)
|
|
@@ -52,11 +52,11 @@ class Serializer(base.Serializer):
|
|
|
raise base.SerializationError("Non-model object (%s) encountered during serialization" % type(obj))
|
|
|
|
|
|
self.indent(1)
|
|
|
- attrs = OrderedDict([("model", smart_text(obj._meta))])
|
|
|
+ attrs = OrderedDict([("model", force_text(obj._meta))])
|
|
|
if not self.use_natural_primary_keys or not hasattr(obj, 'natural_key'):
|
|
|
obj_pk = obj._get_pk_val()
|
|
|
if obj_pk is not None:
|
|
|
- attrs['pk'] = smart_text(obj_pk)
|
|
|
+ attrs['pk'] = force_text(obj_pk)
|
|
|
|
|
|
self.xml.startElement("object", attrs)
|
|
|
|
|
@@ -105,10 +105,10 @@ class Serializer(base.Serializer):
|
|
|
# Iterable natural keys are rolled out as subelements
|
|
|
for key_value in related:
|
|
|
self.xml.startElement("natural", {})
|
|
|
- self.xml.characters(smart_text(key_value))
|
|
|
+ self.xml.characters(force_text(key_value))
|
|
|
self.xml.endElement("natural")
|
|
|
else:
|
|
|
- self.xml.characters(smart_text(related_att))
|
|
|
+ self.xml.characters(force_text(related_att))
|
|
|
else:
|
|
|
self.xml.addQuickElement("None")
|
|
|
self.xml.endElement("field")
|
|
@@ -129,13 +129,13 @@ class Serializer(base.Serializer):
|
|
|
self.xml.startElement("object", {})
|
|
|
for key_value in natural:
|
|
|
self.xml.startElement("natural", {})
|
|
|
- self.xml.characters(smart_text(key_value))
|
|
|
+ self.xml.characters(force_text(key_value))
|
|
|
self.xml.endElement("natural")
|
|
|
self.xml.endElement("object")
|
|
|
else:
|
|
|
def handle_m2m(value):
|
|
|
self.xml.addQuickElement("object", attrs={
|
|
|
- 'pk': smart_text(value._get_pk_val())
|
|
|
+ 'pk': force_text(value._get_pk_val())
|
|
|
})
|
|
|
for relobj in getattr(obj, field.name).iterator():
|
|
|
handle_m2m(relobj)
|
|
@@ -150,7 +150,7 @@ class Serializer(base.Serializer):
|
|
|
self.xml.startElement("field", OrderedDict([
|
|
|
("name", field.name),
|
|
|
("rel", field.remote_field.__class__.__name__),
|
|
|
- ("to", smart_text(field.remote_field.model._meta)),
|
|
|
+ ("to", force_text(field.remote_field.model._meta)),
|
|
|
]))
|
|
|
|
|
|
|