1

在 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.name没有 name = self.person.name 运气。

可以定义一个函数:

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

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

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

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

4

1 回答 1

2

您可以将@property用作装饰器。

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

现在,您可以将其引用为

member.name

代替member.name()

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

于 2013-10-23T18:43:13.747 回答