Django:创建一个引用ForeignKey字段的模型字段

时间:2013-10-23 18:33:37

标签: django django-models

在Django中,给定一个Person模型:

class Person(models.Model):
    person_id = models.AutoField(primary_key=True, blank=False, null=False)
    name = models.CharField(max_length=256, blank=False, default="")

以及将人作为外键的会员模型:

class Member(models.Model):
    member_id = models.AutoField(primary_key=True, blank=False, null=False)
    person = models.ForeignKey(Person)

我希望能够在会员模型中添加一个字段,其中包含该人的姓名。

我试过了: name = person.namename = self.person.name 没有运气。

可以定义一个函数:

def name(self):
    return self.person.name

...但是我需要用parens引用它:member.name()

当然,我总是可以通过member.person.name引用它,但这很冗长。

有没有办法定义这个属性?

1 个答案:

答案 0 :(得分:2)

您可以使用@property as a decorator.

@property
def name(self):
    return self.person.name

现在,您可以将其引用为

member.name

而不是member.name()

现在,name被视为Member类的属性,而不是类方法。