我观察到了这种行为,但我不太明白。假设我进行查询:
result = model.objects.all()
result_pks = result.values_list("id",flat=True)
print result_pks
然后我得到:
[1,2,3,4]
然后我想检查某个值是否在返回的 pks 列表中:
val = 2
print val in result_pks
这将返回 True,但如果我将结果改为:
result = model.objects.prefetch_related("related_field").all()
result_pks = result.values_list("id",flat=True)
print result_pks
我仍然得到:
[1,2,3,4]
但是当我这样做的时候:
val=2
print val in result_pks
我错了。我尝试改用 select_related,结果如我所料返回了 True。有人可以向我解释为什么会有所不同吗?
最佳答案
关于python - Django:检查 values_list 中的值是否有和没有 prefetch_related/select_related,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987954/