a = M.objects.filter(f__in=[None, 1])
a.query.__str__()
u'SELECT * FROM "app_m" WHERE "app_m"."f" IN (None, 1)'
あなたはそれがIN (NULL, 1)
だと思いませんか?以下のようなDjango Queryset __inリストに値がありません
:
a = M.objects.filter(f=None)
a.query.__str__()
u'SELECT * FROM "app_m" WHERE "app_m"."f" IS NULL'
は、これがデフォルトのSQLの行動、Djangoのバグまたは私はf__in=
で何かをしないのですか?
ありがとうございます!
のように動作します:WHERE(。。 "app_m" "F"(1、2)AND "app_m" "F" INはNULL IS)」をこの(1、2、NULL)を含まない – panchicore
'Q'もインポートすることを忘れないでください:' from django.db.models import Q' – Yoone