0

外部キーの属性を返すモデルメソッドを作成しようとしています。この場合、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
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 に答える