在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
...但是我需要用parens引用它:member.name()
当然,我总是可以通过member.person.name
引用它,但这很冗长。
有没有办法定义这个属性?
答案 0 :(得分:2)
您可以使用@property
as a decorator.
@property
def name(self):
return self.person.name
现在,您可以将其引用为
member.name
而不是member.name()
现在,name
被视为Member
类的属性,而不是类方法。