AtrributeError异常

时间:2011-03-01 09:08:40

标签: django exception error-handling

我有一个带功能的插件:

def view(request):
        year = Entry.archive.aggregate(aggregator('pub_date_from'))\
                                                            .values()[0].year
        url = reverse('%s:blog_archive_year' % get_language(),
                      kwargs={'year': year})
        return redirect(url)

问题在于,在分配year时,它会查看第一个值。如果有内容,它会很有效,但如果没有 - AttributeError尖叫.values()[0].year不包含任何数据。我试图添加try / exception但我意识到AtrributeError中没有django.core.exceptions。我怎么解决这个问题?提供默认值或某些东西将无济于事,因为它看起来会引发错误。

1 个答案:

答案 0 :(得分:0)

AttributeError是一个内置的例外,所以你可以这样做:

try:
  year = Entry.archive.aggregate(aggregator('pub_date_from')).values()[0].year
  url = reverse('%s:blog_archive_year' % get_language(),
                  kwargs={'year': year})
  return redirect(url)
except AttributeError, e:
  return redirect(somewhere_else)

(即你不需要导入任何东西来使用AttributeErro,你可以使用它。)