小编Cof*_*ack的帖子

Django:检查values_list中的值是否包含prefetch_related/select_related

我观察到这种行为,我不太明白.假设我提出一个问题:

result = model.objects.all()
result_pks = result.values_list("id",flat=True)
print result_pks
Run Code Online (Sandbox Code Playgroud)

我得到:

[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

然后我想检查返回的pks列表中是否有某个值:

val = 2
print val in result_pks
Run Code Online (Sandbox Code Playgroud)

这将返回True,但如果相反,我将结果更改为:

result = model.objects.prefetch_related("related_field").all()
result_pks = result.values_list("id",flat=True)
print result_pks
Run Code Online (Sandbox Code Playgroud)

我还是得到:

[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

但当我这样做时:

val=2
print val in result_pks
Run Code Online (Sandbox Code Playgroud)

我弄错了.我尝试使用select_related,并按预期返回True.有人可以向我解释为什么会有区别吗?

python django orm list

7
推荐指数
1
解决办法
716
查看次数

EmptyIndexError - <whoosh.filedb.gae.DatastoreStorage 对象在 0x0667F130> 中不存在索引“MAIN”

我正在按照他们的快速入门指南在一个项目上测试 Whoosh:

http://whoosh.readthedocs.org/en/latest/quickstart.html

唯一的区别是,我的项目正在运行 Google App Engine,而不是:

ix = create_in("indexdir", schema)
Run Code Online (Sandbox Code Playgroud)

我有:

from whoosh.filedb.gae import DatastoreStorage
ix = DatastoreStorage().create_index(schema)
Run Code Online (Sandbox Code Playgroud)

我得到:

EmptyIndexError -  Index 'MAIN' does not exist in <whoosh.filedb.gae.DatastoreStorage object at 0x0667F130>
Run Code Online (Sandbox Code Playgroud)

python django google-app-engine whoosh

5
推荐指数
0
解决办法
957
查看次数

标签 统计

django ×2

python ×2

google-app-engine ×1

list ×1

orm ×1

whoosh ×1