天天看点

Django ORM的F Q和extra操作

假设数据库有一个员工表,表中的年龄都自加“1”,这里就需要到orm的F功能,如下面的代码:

F 就是用来更新获取原来值的功能

数据库的查询条件我们可以使用filter,在filter里面的可以是两个条件他们之间是and的关系,也可以是一个字典,例如下面的代码

除了上面的方法,我们还可以加Q的对象,例如:

Q的另外一种用法

Q能把查询相互嵌套

Django ORM的F Q和extra操作

实例应用

组合搜索的时候就可以用到这个Q。

Django ORM的F Q和extra操作
Django ORM的F Q和extra操作
Django ORM的F Q和extra操作
Q用于构造复杂的查询条件的,使用方法有对象方法和直接创建创建对象方法

我们的sql语句有下面这样的查询方式,如果用orm应该如何查询那?

orm使用extra的方法来解决上面的问题

这里除了取到了Uinfo里面的所有字段(all方法),还取到了Utype里面的总数。这里也列举了extra里面是可以使用条件查询的,后面的select_params就是传递的值,但是这个值再取的时候是按照顺序开始,第一个%s取值为1,依次类推。

取值的话,就可以加入for循环来查看

Django ORM的F Q和extra操作
Django ORM的F Q和extra操作
Django ORM的F Q和extra操作
Django ORM的F Q和extra操作
<a href="http://www.cnblogs.com/wupeiqi/articles/6216618.html">http://www.cnblogs.com/wupeiqi/articles/6216618.html</a>

本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/2069011,如需转载请自行联系原作者