Доступ к данным модели ForeingKey в Django

Мне нужно получить доступ к данным модели ForeignKey, но я не знаю как. Я написал это как простой пример того, что я хочу сделать:

class Model1(models.Model):
name = models.CharField(max_length=100)
phone_number = models.BigIntegerField()

class Model2(models.Model):
model1 = models.ForeignKey(Model1, on_delete=models.CASCADE)
name = model1.name
phone_number = model1.phone_number

Выдает следующее сообщение об ошибке:

AttributeError: 'ForeignKey' object has no attribute 'name'

Если вы пишете model1.name, это нацелено на получение атрибута ForeignKey объекта, а не объекта, на который ссылается ForeignKey модель объекта .

Вы можете определить два свойства для получения .name и .phone_number связанного Model1 объекта:

class Model2(models.Model):
    model1 = models.ForeignKey(Model1, on_delete=models.CASCADE)
    
    @property
    def name(self):
        return self.model1.name
    
    @property
    def phone_number(self):
        return self.model1.phone_number
Вернуться на верх