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

Django: Create a model field referencing a ForeignKey field

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

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

以及一个成员模型,其具有一个人作为外键:

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

我希望能够在成员模型中添加包含人员姓名的字段。

我试过了:name = person.name和江户十一〔一〕号没有运气。

我可以定义一个函数:

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

…但是我需要参考Parens:member.name()

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

是否有定义此属性的方法?


您可以使用@property作为装饰。

1
2
3
@property
def name(self):
    return self.person.name

现在,您可以将其作为

1
member.name

而不是member.name()

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