在我的应用程序中,每个对象Kurs需要有一个字段“prowadzacy”,指定给定Kurs所属的用户。因此,我的 models.py 具有以下内容:
class Kurs(models.Model):
prowadzacy = models.ForeignKey(User)
我还需要知道拥有给定Kurs的用户的名字。在 shell 中,以下工作:
>>> k=Kurs.objects.get(id=1)
>>> k
<Kurs: Wprowadzenie do epi 2>
>>> k.prowadzacy
<User: leszekwronski>
>>> k.prowadzacy.first_name
u'Leszek'
最终,我需要在我的Kurs对象中有一个字段,其中包含转换拥有者的名字和姓氏的过程的结果。作为第一步,我想添加一个仅包含名字的字段。但是,当我修改我的 models.py 以包含以下内容时:
class Kurs(models.Model):
prowadzacy = models.ForeignKey(User)
imie = prowadzacy.first_name
然后我收到以下错误:
AttributeError: 'ForeignKey' object has no attribute 'first_name'
我尝试使用“self.prowadzacy.first_name”而不是“prowadzacy.first_name”,但无济于事:
NameError: name 'self' is not defined
我究竟做错了什么?读完这篇文章后,我怀疑在完成特定模型的定义之前,我无法引用模型中的字段名称。但是,1)我不确定,我会很感激一个决定性的“是”或“否”和 2)如果是这种情况,我如何引用“特定用户的名字,它是 a 的值我现在定义的模型中的不同字段”?