【问题标题】:Django Rest get link to related object in OneToOne relationDjango Rest 获取 OneToOne 关系中相关对象的链接
【发布时间】:2022-01-09 03:53:54
【问题描述】:

如何获取 OneToOne 关系下的相关对象链接。

我有 2 个模型:

class Model1(models.Model):
    title = models.CharField(max_length=255, null=False)

class Model2(models.Model):
    mymodel1 = models.OneToOneField(Model1, on_delete=models.CASCADE)

在 Model1Serializer 中,如何获取 MyModel2 相关对象的链接

得到如下结果:

[
    {
        "title": "My obj title"
        "link2mymodel2": "http://myhost/model2/pk"
    }
]

其中 pk 是相关对象

【问题讨论】:

  • 您可以检查 HyperlinkedModelSerializer...This 答案可能会有所帮助...

标签: python django django-rest-framework


【解决方案1】:

您可以将其作为属性添加到 Model1。

models.py

class Model1(models.Model):
    title = models.CharField(max_length=255, null=False)

    @property
    def link2mymodel2(self):
       return self.model2.link


class Model2(models.Model):
    mymodel1 = models.OneToOneField(Model1, related_name=model2, on_delete=models.CASCADE)
    link = models.URLField()

serializers.py

class Model1Serializer(serializers.ModelSerializer):
    link2mymodel2 = serializers.URLField()
    
    class Meta:
        model = Model1
        fields = ["title", "link2model2"]


【讨论】:

    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2018-03-27
    • 2011-09-19
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多