在django中对数据库中的内容进行查询时,有时需要包含多个查询条件,此时采用Q()方法就很方便了。

Q对象(django.db.models.Q)可以对关键字参数进行封装,从而更好地应用多个查询。可以组合使用 &(and),|(or),~(not)操作符,当一个操作符是用于两个Q的对象,它产生一个新的Q对象。

Order.objects.get(
    Q(desc__startswith='Who'),
    Q(create_time=date(2016, 10, 2)) | Q(create_time=date(2016, 10, 6))
)

Q对象可以与关键字参数查询一起使用,不过一定要把Q对象放在关键字参数查询的前面。

正确写法:

Order.objects.get(
    Q(create_time=date(2016, 10, 2)) | Q(create_time=date(2016, 10, 6))
    desc__startswith='Who',
)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐