私はこの動作を観察しましたが、よくわかりません。クエリを作成するとします。
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 が返されました。誰かが私になぜ違いを説明できますか?