【问题标题】:Django: OR queries with dynamic field namesDjango:使用动态字段名称进行 OR 查询
【发布时间】:2012-05-07 13:55:48
【问题描述】:

我有一个值,并希望在一个或多个列中获取具有该值的所有实例。为了让这更复杂一点,字段列表是动态的。

所以,我拥有的是:['field1', 'field2', 'field3', ...]

我需要的是:Q(field1='value') | Q(field2='value') | Q(field3='value') | ...

我怎样才能得到这个?

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    使用**dictionary-to-kw-args 扩展:

    q = Q()
    for field in fields:
        q = q | Q(**{field: "value"})
    

    (据我所知,Q() 产生一个“什么都不做”的Q

    【讨论】:

    • 感谢您的更新,因为肯定会发生少于两个。
    • 没问题。其实我已经把原版去掉了,因为reduce一般来说是个坏主意,新版本基本上各方面都更好。
    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 2015-05-02
    • 2011-03-28
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多