0

我正在尝试创建一个返回外键属性的模型方法。在这种情况下,我希望 get_place_name() 返回 place 模型的 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
4

1 回答 1

3

好吧,你有null=True你的place外键。是否有可能对于CalendarEvent您所调用的特定而言,place确实是None?在这种情况下,错误将是准确的。您可以通过修改您的get_place_name方法来更优雅地处理它:

def get_place_name(self):
    if self.place:
        return self.place.pretty_name
于 2012-10-02T19:34:29.203 回答