Django ATRIBUTEERROR异常
我有一个具有以下功能的插件:Django ATRIBUTEERROR异常,django,exception,error-handling,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(),
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)
问题是,在分配年份时,它会查看第一个值。如果里面有什么东西,它会工作得很好,但是如果没有,AttributeError
会尖叫说.values()[0]。year
不包含任何数据。我试图添加try/exception,但我意识到django.core.exceptions
中没有atributeerror
。我怎样才能解决这个问题?给出一个默认值或其他东西是没有帮助的,因为它看起来是抛出错误的部分。是一个内置的异常,所以您可以只执行以下操作:
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
,你可以直接使用它)。谢谢,现在一切都正常:)很抱歉这个愚蠢的假设。也许你知道在哪里可以找到这样的内置异常或类似的链接?