这是我的代码:
qs = MyModel.objects.filter(blah = blah)
if qs.count() > 0:
a = qs[0].value
File "/home/libs/django/db/models/query.py", line 189, in __getitem__
return list(qs)[0]
IndexError: list index out of range
除了通过并发进程从数据库中删除记录之外,是否有可能导致此错误?
答案 0 :(得分:1)
您的代码未考虑过滤器未返回任何记录的可能性。即使您使用qs.count()
条件,您的返回值也会假定返回了对象。也许你可以考虑一个功能:
def myquery():
qs = MyModel.objects.filter(blah = blah)
try:
return qs[0].value
except IndexError:
return None # or raise an exception