Django get all,带有相关模型
Posted
技术标签:
【中文标题】Django get all,带有相关模型【英文标题】:Django get all, with related models 【发布时间】:2015-04-16 03:40:12 【问题描述】:问题:
我正在使用 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
,但得到了相同的结果..
谢谢!
【问题讨论】:
找到我的答案:***.com/questions/14573102/… 【参考方案1】:只需为您的相关模型创建序列化程序:
class TestRelationSerializer(serializers.ModelSerializer):
class Meta:
meta = TestRelation
并且使用是TestModelSerializer
中的字段:
class TestModelSerializer(serializers.ModelSerializer):
related_model = TestRelationSerializer()
您也可以通过其他方式执行此操作,将 TestModelSerializer
用作 TestRelationSerializer
中的字段,并将 many 设置为 true:
class TestRelationSerializer(serializers.ModelSerializer):
testmodel_set = TestModelSerializer(many=True)
请记住,您不能同时执行这两项操作,因为它会产生无限递归。
【讨论】:
以上是关于Django get all,带有相关模型的主要内容,如果未能解决你的问题,请参考以下文章
Django - 如何以有效的方式获取最新的相关模型,我可以在模板上进行迭代?