django Q方法

一般在django中查询数据库都是用queryset方法,当查询条件比较多的时候,Q对象的作用就显现了,他能让代码 更可读逻辑更清晰。

深度先不研究,主要看看如何用的。

category_articles = Article.objects.filter(                                     
    Q(category_id=category.id) & Q(published=1)).order_by('-pub_date') 

# 原来的语法

category_articles = Article.objects.filter(category_id=category.id, published=1).order_by('-pub_date')

上述例子看起来好像差不多,但是当查询条件再多再复杂下面的例子将变得不可读。而且Q对象支持反(~),并(&),或(|)这样再复杂的查询语句也能够很好的支持(通过重写Q对象的__or__, __invert__, __and__方法实现)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值