【问题标题】:Django get all, with related modelsDjango get all,带有相关模型
【发布时间】: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,但得到了相同的结果..

谢谢!

【问题讨论】:

标签: django django-models django-rest-framework


【解决方案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)

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

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2020-10-22
    • 1970-01-01
    • 2013-08-25
    • 2012-08-27
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多