问题:
我正在使用Django Rest Framework,我想获取所有包含关系的模型,如下所示:
TestModel.objects.all()
我的模型看起来像这样:
class TestModel(models.Model):
name = models.CharField(max_length=32)
related_model = models.ForeignKey(TestRelation)
问题是,我只获得related_model
的主键,但我需要整个related_model
!
我使用ListCreateAPIView,使用上面的查询集(TestModel.objects.all()
)和ModelSerializer的最基本形式。
我尝试了PrimaryKeyRelatedField
,但我得到了相同的结果..
谢谢!
答案 0 :(得分:1)
只需为相关型号创建序列化程序:
class TestRelationSerializer(serializers.ModelSerializer):
class Meta:
meta = TestRelation
并使用TestModelSerializer
中的字段:
class TestModelSerializer(serializers.ModelSerializer):
related_model = TestRelationSerializer()
您也可以使用TestModelSerializer
作为TestRelationSerializer
中的字段并将其设置为true来进行其他操作:
class TestRelationSerializer(serializers.ModelSerializer):
testmodel_set = TestModelSerializer(many=True)
请记住,由于无限递归,你无法同时做到这两点。