在Django模型查询集中,我看到比较值有__gt__lt,但有__ne!=(not equals)吗?我想用not equals过滤掉.例如

Model:
    bool a;
    int x;

我想做

results = Model.objects.exclude(a=True, x!=5)

!=的语法不正确.我也试过__ne.

我最终使用了:

results = Model.objects.exclude(a=True, x__lt=5).exclude(a=True, x__gt=5)

推荐答案

你可以用Q objects美元买这个.可以使用~运算符对它们求反,并将它们组合在一起,这与普通Python表达式非常相似:

from myapp.models import Entry
from django.db.models import Q

Entry.objects.filter(~Q(id=3))

将返回所有条目,但ID为3的条目除外:

[<Entry: Entry object>, <Entry: Entry object>, <Entry: Entry object>, ...]

Python相关问答推荐

通过交换 node 对链接列表进行 Select 排序

Odoo -无法比较使用@api.depends设置计算字段的日期

剧作家Python没有得到回应

返回nxon矩阵的diag元素,而不使用for循环

如何使用html从excel中提取条件格式规则列表?

cv2.matchTemplate函数匹配失败

无法连接到Keycloat服务器

Python中的变量每次增加超过1

用渐近模计算含符号的矩阵乘法

如何获取Python synsets列表的第一个内容?

Gekko中基于时间的间隔约束

使用字典或列表的值组合

获取PANDA GROUP BY转换中的组的名称

numpy数组和数组标量之间的不同行为

删除特定列后的所有列

如何在Gekko中处理跨矢量优化

Python OPCUA,modbus通信代码运行3小时后出现RuntimeError

BeatuifulSoup从欧洲志愿者服务中获取数据和解析:一个从EU-Site收集机会的小铲子

将像素信息写入文件并读取该文件

大型稀疏CSR二进制矩阵乘法结果中的错误