Django继承模型的序列化

tef*_*ozi 8 python django serialization

我有一个Django继承模型序列化的问题.例如

class Animal(models.Model):
    color = models.CharField(max_length=50)

class Dog(Animal):
    name = models.CharField(max_length=50)

...
# now I want to serialize Dog model with Animal inherited fields obviously included
print serializers.serialize('xml', Dog.objects.all())
Run Code Online (Sandbox Code Playgroud)

只有Dog模型已被序列化.

我可以做得像

all_objects = list(Animal.objects.all()) + list(Dog.objects.all())
print serializers.serialize('xml', all_objects)
Run Code Online (Sandbox Code Playgroud)

但它看起来很难看,因为我的模型非常大,所以我必须使用SAX解析器,并且使用这样的输出很难解析.

知道如何用父类序列化django模型吗?

**编辑:**在使用此补丁之前,它可以正常工作.并解释为什么补丁存在"模型保存在反序列化期间过于积极地创建新的父类实例.模型上的原始保存现在跳过保存父类."我认为应该有一个选项可以序列化"本地仅字段"默认情况下和第二个选项 - "全部" - 序列化所有继承的字段.

Ste*_* H. 0

你看了吗select_related()?如

serializers.serialize('xml', Dog.objects.select_related().all())
Run Code Online (Sandbox Code Playgroud)