Django get all,有相关模型

Django get all, with related models

问题:

我正在使用 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 但我得到了相同的结果..

谢谢!

只需为您的相关模型创建序列化程序:

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)

请记住,您不能同时执行这两项操作,因为它会产生无限递归。