在Django中引用第三个模型时遇到问题

时间:2019-03-27 22:04:59

标签: django django-models

我有三种型号:

class Person(models.Model):
    document = models.CharField(max_length=14)
    phone = models.CharField(max_length=20) 

class Address(models.Model):
    person= models.ForeignKey(Person, related_name='person_address', on_delete=models.CASCADE)
    zip_code = models.CharField(max_length=9)

class StatusPerson(models.Model):
    person = models.OneToOneField(Person, related_name='person_status', on_delete=models.CASCADE)
    sms_status = models.CharField(max_length=100, blank=True)
    activation_status = models.CharField(max_length=100, blank=True)

我想从地址类中了解此人的身份。 我尝试:

def user_sms_status(self):
    return self.person.StatusPerson.sms_status 

我收到错误: “人员”对象没有属性“状态人员”

有人可以帮我得到这个吗?

1 个答案:

答案 0 :(得分:1)

您应该使用在StatusPerson中声明的内容,而不是使用类名related_name='person_status'

因此,您的函数应如下所示:

  def user_sms_status(self):
    return self.person.person_status.sms_status

您可以read more about it here