Django休息框架抽象模型/序列化器

时间:2015-10-30 15:40:07

标签: python django django-rest-framework

我有一个班级联系人和2个子类:人,公司。

在我的API中,我正在尝试列出两个公司和填写了专业字段的人员的列表,但是我只使用此代码获得了联系人的字段。

class Contact(EntityBase):
    #base contact fields

class Company(Contact):
    #Company fields

class Person(Contact):
    #person fields

串行器:

class PersonSerializer(serializers.ModelSerializer):
    #all fields (base and specialized) specified


class CompanySerializer(serializers.ModelSerializer):
    #all fields (base and specialized) specified

class ContactSerializer(serializers.ModelSerializer):
    class Meta:
        model = Contact

    def to_native(self, obj):
        #polymorphic serialzer
        if isinstance(obj, Person):
            return PersonSerializer(obj, context=self.context).to_native(obj)
        if isinstance(obj, Person):
            return PersonSerializer(obj, context=self.context).to_native(obj)

和查看:

class ContactViewset(viewsets.ModelViewSet):
    queryset = Contact.objects.all()
    serializer_class = ContactSerializer

使用所有这些代码,我得到一切正常,但不是专业领域。我怎样才能做到这一点?有可能吗?

0 个答案:

没有答案