我想过滤 mytable 并获取名称不包含 ''
或 '-'
值的行,为此我有在下面的查询中使用但不起作用。
mytable.objects.exclude(name = ['','-']).order_by('name').count()
返回 2000 条所有行,而查询 mytable. objects.exclude(name = '').order_by('name').count()
完美工作并返回过滤后的 1460 个结果。
下面是我的 Postgresql 查询,它运行得非常好,返回 1450 结果,不包括 ['','-']
的名称值>.
select * from mytable where name != '-' and name != '' order by -id
最佳答案
试试这个。
mytable.objects.exclude(name__in=['', '-'])
这应该排除与您在列表中传递的值匹配的行。
并且您不需要执行 order_by()
来获取计数。
只需直接在查询集上使用.count()
即可。
关于python - 如何使用 Django ORM 排除列的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59100435/