SO上其他地方的答案提供PostgresqlNOT(<table> IS NOT NULL)
查询作为一个选项,用于查找包含一个或多个null值的表中的所有行。如果不编写原始SQL,如何在Django ORM中应用此查询?还是在这种情况下需要原始SQL?
在最新的Django文档中,我找不到这样的查询示例。
作为参考,链接答案中显示的示例如下:
SELECT * FROM t;
┌────────┬────────┐
│ f1 │ f2 │
├────────┼────────┤
│ (null) │ 1 │
│ 2 │ (null) │
│ (null) │ (null) │
│ 3 │ 4 │
└────────┴────────┘
(4 rows)
SELECT * FROM t WHERE NOT (t IS NOT NULL);
┌────────┬────────┐
│ f1 │ f2 │
├────────┼────────┤
│ (null) │ 1 │
│ 2 │ (null) │
│ (null) │ (null) │
└────────┴────────┘
(3 rows)
您可以使用extra
向查询添加额外的WHERE子句
Model.objects.extra(where=['NOT (%s IS NOT NULL)'], params=[Model._meta.db_table])