首页 > 解决方案 > 在 Django 中引用第三个模型的问题

问题描述

我有三个模型:

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 

我收到错误:“Person”对象没有属性“StatusPerson”

任何人都可以帮我得到这个吗?

标签: djangodjango-models

解决方案


而不是使用类名StatusPerson,你应该使用你在related_name='person_status'.

所以,你的函数应该是这样的:

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

你可以在这里阅读更多关于它的信息


推荐阅读