我运行了以下代码(在shell上):
sqs = SearchQuerySet().models(myModel).filter(title=search_text)
sqs = sqs[:4]
for s in sqs:
print s.title
关于此代码的奇怪之处如下。对于* search_text *的大多数值,此代码工作正常。当我尝试使用特定的* search_text *(在我的情况下是'Ca')时,我得到了三个结果但是当它必须打印第三个结果的标题时,它说
'NoneType'对象没有attribube'title'
如果我现在运行
sqs
在shell上查看变量 sqs 的内容,然后我看到第三个条目是 None 。
现在,如果我运行以下代码(也在shell上):
sqs = SearchQuerySet().models(myModel).filter(title=search_text)
sqs
sqs = sqs[:4]
sqs
for s in sqs:
print s.title
我把那些中间 sqs 放在每一步都看到它的内容。但是一切都很好,所有三个结果都印有标题。
这是干草堆的错吗?还是一个python bug?或其他什么?
更新:我运行相同的代码,但没有
sqs = sqs[:4]
一切都很顺利。所以当它试图调整 sqs 的大小时会出现问题。奇怪的是,无论出现什么问题,当我要求python显示其内容时都不会出错。 (这就像薛定谔的猫......哈哈)