【发布时间】:2013-10-23 18:33:36
【问题描述】:
在 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)
我希望能够在 Member 模型中添加一个包含人名的字段。
我试过了:
name = person.name 和
name = self.person.name
没有运气。
我可以定义一个函数:
def name(self):
return self.person.name
...但是我需要用括号引用它:member.name()
当然,我总是可以通过member.person.name 引用它,但这太冗长了。
有没有办法定义这个属性?
【问题讨论】:
-
你不能把
Member中的方法定义为def person_name(self): return self.person.name吗? -
我可以,如示例 2/3 中的帖子(已编辑以包含 self 参数)。但后来我需要用括号调用 member.name() 。不是世界末日,但我的问题是我能否避免它。
-
您能否进一步解释您要达到的目标或为什么使用括号是一个问题?
标签: django django-models