看看我有什么:
> bar = [(u'code__regex', u'^[^J]'), (u'active__exact', u'0'), (u'type__id__exact', u'E01')]
我想使用字段/值来过滤模型Foo。
> #want to have this equivalent:
> Foo.objects.filter(bar)
谢谢!
答案 0 :(得分:8)
Foo.objects.filter(**dict(bar))
这不是django问题,这是一个python问题。您希望将关键字对作为关键字参数(kwargs)传递给过滤器。您的bar
完美作为kwarg集,因此dict(bar)
将其转换为字典,**
前缀通知python解析器该字典是被接收者解释为关键字参数。
堆栈溢出条目Understanding kwargs in Python更详细地介绍了这一点。
答案 1 :(得分:3)
你没有在AND或OR中说明你是否想要它。如果AND正常,那么您只需将该列表转换为字典并将其传递给过滤器:
Foo.objects.filter(**dict(bar))