Django Rest получение ссылки на связанный объект в отношении OneToOne

Как я могу получить ссылку на связанный объект в рамках отношения 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

ahd получите следующий результат:

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

где pk - повторно используемый объект

Вы можете добавить его как свойство к 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"]


Вернуться на верх