7

私はこの動作を観察しましたが、よくわかりません。クエリを作成するとします。

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 が返されました。誰かが私になぜ違いを説明できますか?

4

1 に答える 1