2012-10-02 85 views
0

我试图创建一个返回外键属性的模型方法。在这种情况下,我想让get_place_name()返回place模型的pretty_name字段。但是,当我这样做,我得到一个属性错误:“‘NoneType’对象有没有属性‘pretty_name’”访问django模型中的foreignkey字段的属性

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 

回答

3

那么,你必须null=Trueplace外键。是否有可能对于您拨打的特定CalendarEventplace确实是None?在这种情况下,错误将是准确的。您可以通过修改get_place_name方法更好地处理:

def get_place_name(self): 
    if self.place: 
     return self.place.pretty_name 
相关问题