我运行了以下代码(在外壳上):
sqs = SearchQuerySet().models(myModel).filter(title=search_text)
sqs = sqs[:4]
for s in sqs:
print s.title
这段代码的奇怪之处如下。对于 *search_text* 的大多数值,此代码工作正常。当我使用特定的 *search_text*(在我的情况下为“Ca”)尝试它时,我得到了三个结果,但是当它必须打印第三个结果的标题时,它说
“NoneType”对象没有属性“标题”
如果我现在跑
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只是为了在每个步骤中查看它的内容。但是一切都很好,所有三个结果都打印了它们的标题。
这是干草堆错误吗?还是蟒蛇错误?或者是其他东西?
更新:我运行了相同的代码,但没有
sqs = sqs[:4]
一切顺利。所以当它试图调整sqs的大小时会出现问题。奇怪的是,无论出现什么问题,当我要求 python 显示其内容时都不会出错。(就像薛定谔的猫……哈哈)