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"]