访问django模型中的foreignkey字段的属性

时间:2012-10-02 19:31:28

标签: django

我正在尝试创建一个返回外键属性的模型方法。在这种情况下,我希望get_place_name()返回场所模型的pretty_name字段。但是当我这样做时,我得到一个属性错误:“'NoneType'对象没有属性'pretty_name'”

class CalendarEvent(models.Model):

    event_id = models.CharField( max_length=22, db_index=True, unique=True )
    event_name = models.CharField( max_length=255, db_index=True )
    place = models.ForeignKey( Place, blank=True, null=True  )

    def __unicode__(self):
        return self.event_name

    def get_place_name(self):
        return "%s" % self.place.pretty_name

1 个答案:

答案 0 :(得分:3)

嗯,您的null=True外键有place。是否可能对于您呼叫的特定CalendarEventplace确实是None?在这种情况下,错误是准确的。您可以通过修改get_place_name方法来优雅地处理它:

def get_place_name(self):
    if self.place:
        return self.place.pretty_name