Using Serializers, we can translate Django model objects into other formats like XML, JSON, YAML(YAML Ain’t a Markup Language) with a single command.
from django.core import serializers data = serializers.serialize("xml", SomeModel.objects.all())
the first argument will be the format we want to serialize the data and second will be a QuerySet to serialize.
we can also translate using a serializer object directly
XMLSerializer = serializers.get_serializer("xml") xml_serializer = XMLSerializer() xml_serializer.serialize(queryset) data = xml_serializer.getvalue()
this is useful when we want data directly be a file like object.
we can also translate only subset of fields using fields argument
from django.core import serializers data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size')) class Teacher(models.Model): name = models.CharField(max_length=50) qualification = models.CharField(max_length=50) class College(Teacher): name = models.models.CharField(max_length=50)
for the inherited models,to translate child class objects we have to list all parent class objects and child class objects into single list,then translate.
all_objects = list(Teacher.objects.all()) + list(College.objects.all()) data = serializers.serialize('xml', all_objects)
Deserializing data:
for obj in serializers.deserialize("xml", data): do_something_with(obj)
it will take same arguments as serialize function and returns an iterator
The objects returned by the deserialize iterator are unsavedobjects and Calling DeserializedObject.save() saves the object to the database.
for deserialized_object in serializers.deserialize("xml", data): if object_should_be_saved(deserialized_object): deserialized_object.save()
Micropyramid is a software development and cloud consulting partner for enterprise businesses across the world. We work on python, Django, Salesforce, Angular, Reactjs, React Native, MySQL, PostgreSQL, Docker, Linux, Ansible, git, amazon web services. We are Amazon and salesforce consulting partner with 5 years of cloud architect experience. We develop e-commerce, retail, banking, machine learning, CMS, CRM web and mobile applications.
Django-CRM :Customer relationship management based on Django
Django-blog-it : django blog with complete customization and ready to use with one click installer Edit
Django-webpacker : A django compressor tool
Django-MFA : Multi Factor Authentication
Docker-box : Web Interface to manage full blown docker containers and images
More...