У меня очень простой запрос для фильтрации, но я действительно не могу понять, почему он дает мне неправильный результат.
Это мой код -
for s in sqs:
print(s.is_draft)
sqs = sqs.filter(is_draft=False)
print('----------------------')
for s in sqs:
print(s,s.is_draft)
То, что я получаю, -
<SearchResult: products.productcreatemodel (pk='82')> False
<SearchResult: products.productcreatemodel (pk='87')> False
<SearchResult: products.productcreatemodel (pk='94')> False
<SearchResult: products.productcreatemodel (pk='99')> False
<SearchResult: products.productcreatemodel (pk='101')> False
<SearchResult: products.productcreatemodel (pk='106')> False
<SearchResult: products.productcreatemodel (pk='118')> False
<SearchResult: products.productcreatemodel (pk='84')> False
<SearchResult: products.productcreatemodel (pk='91')> False
<SearchResult: products.productcreatemodel (pk='96')> False
<SearchResult: products.productcreatemodel (pk='103')> False
<SearchResult: products.productcreatemodel (pk='108')> False
<SearchResult: products.productcreatemodel (pk='110')> False
<SearchResult: products.productcreatemodel (pk='115')> False
<SearchResult: products.productcreatemodel (pk='85')> False
<SearchResult: products.productcreatemodel (pk='92')> False
<SearchResult: products.productcreatemodel (pk='97')> False
<SearchResult: products.productcreatemodel (pk='104')> False
<SearchResult: products.productcreatemodel (pk='111')> False
<SearchResult: products.productcreatemodel (pk='83')> True
<SearchResult: products.productcreatemodel (pk='95')> False
<SearchResult: products.productcreatemodel (pk='102')> False
<SearchResult: products.productcreatemodel (pk='107')> False
<SearchResult: products.productcreatemodel (pk='119')> False
<SearchResult: products.productcreatemodel (pk='93')> False
<SearchResult: products.productcreatemodel (pk='98')> False
<SearchResult: products.productcreatemodel (pk='100')> False
<SearchResult: products.productcreatemodel (pk='105')> False
<SearchResult: products.productcreatemodel (pk='112')> False
----------------------
<SearchResult: products.productcreatemodel (pk='83')> True
Он должен вернуть мне набор запросов из тех, которые имеют is_draft=False
, но в этом вы можете ясно увидеть, что он возвращает мне набор запросов с объектами, имеющими is_draft=True
Теперь магияэто когда я снова изменяю код на sqs = sqs.filter(is_draft=True)
результат тот же !!
Это действительно понятно.