我正在尝试创建一个返回外键属性的模型方法。在这种情况下,我希望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
答案 0 :(得分:3)
嗯,您的null=True
外键有place
。是否可能对于您呼叫的特定CalendarEvent
,place
确实是None
?在这种情况下,错误是准确的。您可以通过修改get_place_name
方法来优雅地处理它:
def get_place_name(self):
if self.place:
return self.place.pretty_name