Django排除具有不同值的相同字段

时间:2014-01-30 11:13:12

标签: python django

我必须创建一个这样的查询:

Obj.objects.exclude(title__iexact="Hello", title_iexact="Hell")

我想从列表中创建排除查询作为字典,并使用kwargs将其传递给排除。有可能吗?

我知道由于条件不可能,它绝不会排除任何记录。但是,此查询来自解析器,因此我需要确保它可以正确地提供给SQL引擎。

1 个答案:

答案 0 :(得分:1)

我明白了... Q对象......下面链接非常好......

http://www.michelepasin.org/blog/2010/07/20/the-power-of-djangos-q-objects/

一些代码:

for rule in rules:
    negative_rules.append((rule.key.lower() + "__" + "iexact", rule.value))

negative_rules = reduce(operator.or_, [Q(x) for x in negative_rules]) if negative_rules else Q()

Obj.objects.exclude(negative_rules)