我有一个PersonProfile类和一个Person类。 在类Person中,我与PersonProfile有一个关系OneToOne。 我如何序列化?
class PersonProfile(models.Model):
interests = models.CharField(max_length=200, blank=True)
researchLines = models.CharField(max_length=200, blank=True)
loginName = models.CharField(max_length=50, blank=True)
class Person(models.Model):
profile = models.OneToOneField(PersonProfile)
enviroment = models.ForeignKey(Enviroment, related_name="persons")
答案 0 :(得分:5)
您可以创建自定义序列化程序字段来创建自定义PersonSerializer。
您可以添加字段以从Enviroment
获取值。
class PersonSerializer(serializers.HyperlinkedModelSerializer):
interests = serializers.CharField(source='profile.interests')
researchLines = serializers.CharField(source='profile.researchLines')
loginName = serializers.CharField(source='profile.loginName')
# --- FIELDS FOR enviroment
class Meta:
model = Person
fields = ('interests', 'researchLines', 'loginName',
#-- enviroment fields
)
您也可以使用serializers.ModelSerializer
class PersonSerializer(serializers.ModelSerializer):
#-------------------------