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)
请记住,您不能同时执行这两项操作,因为它会产生无限递归。
问题:
我正在使用 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)
请记住,您不能同时执行这两项操作,因为它会产生无限递归。