在模型中使用OneToOneField之间的字段

时间:2013-06-12 02:43:08

标签: django django-models

我处于无法使用继承的情况。假设我有两个模型,PersonPassport,本例假设它们具有一对一的关系:

class Passport(models.Model):
    full_name = models.CharField()



class Person(models.Model):
    passport = models.OneToOneField(Passport)

现在从这里开始,我希望得到一个Person full_name。在我的应用程序中,Person在没有唯一Passport的情况下无法存在,因此如何通过full_name对象访问Person属性。我最终希望能够做到这样的事情:

class Person(models.Model):
    passport = models.OneToOneField(Passport)

    def __unicode__(self):
        return self.passport.full_name

Django有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

是的,执行此操作的简单而正确的方法正是您所做的:self.passport.full_name返回此人的全名,这是护照的属性。

请注意,由于护照ForeignKey不能为您定义,因此self.passport将始终存在。