我有一个班级联系人和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
使用所有这些代码,我得到一切正常,但不是专业领域。我怎样才能做到这一点?有可能吗?