django中filter的values_list条件使用

 1 In [1]: from apps.dormitory.models import Building
 2
 3 In [2]: buildings = Building.objects.values(‘number‘)
 4
 5 In [3]: buildings
 6 Out[3]: [{‘number‘: u‘1‘}, {‘number‘: u‘2‘}, {‘number‘: u‘3‘}, {‘number‘: u‘4‘}, {‘number‘: u‘5‘}]
 7
 8 In [4]: buildings_ = Building.objects.values_list(‘number‘)
 9
10 In [5]: buildings_
11 Out[5]: [(u‘1‘,), (u‘2‘,), (u‘3‘,), (u‘4‘,), (u‘5‘,)]
12
13 In [6]: buildings_list = Building.objects.values_list(‘number‘, flat=True)
14
15 In [7]: buildings_list
16 Out[7]: [u‘1‘, u‘2‘, u‘3‘, u‘4‘, u‘5‘]
class Building(models.Model):
    corporation = models.ForeignKey(‘company.Corporation‘, verbose_name=u‘学校‘, related_name=‘buildings‘)
    number = models.CharField(u‘楼栋编号‘, max_length=10, unique=True, db_index=True)
    create_time = models.DateTimeField(u‘创建时间‘, auto_now_add=True)

从以上代码可以看出:

values方法可以获取number字段的字典列表。

values_list可以获取number的元组列表。

values_list方法加个参数flat=True可以获取number的值列表。

时间: 2024-10-20 01:33:21

django中filter的values_list条件使用的相关文章

django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct

1.多表连接查询:当我知道这点的时候顿时觉得django太NX了.  class A(models.Model):    name = models.CharField(u'名称')  class B(models.Model):    aa = models.ForeignKey(A)B.objects.filter(aa__name__contains='searchtitle') 1.5 我叫它反向查询,后来插入记录1.5,当我知道的时候瞬间就觉得django太太太NX了.  class

django中的objects.get和objects.filter方法的区别

为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student = models.ForeignKey(Student) 一.先说下django的obj.get():

django中的ORM系统

数据库的配置 1    django默认支持sqlite,mysql, oracle,postgresql数据库.  <1> sqlite django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3 <2> mysql 引擎名称:django.db.backends.mysql 2    mysql驱动程序 MySQLdb(mysql python) mysqlclient MySQL PyMySQ

Django中的Model(操作表)

一.基本操作 1 # 增 2 3 models.Tb1.objects.create(c1='xx', c2='oo') #增加一条数据,可以接受字典类型数据 **kwargs 4 5 obj = models.Tb1(c1='xx', c2='oo') 6 obj.save() 7 dic = {'c1':'xx','c2':'oo'} models.Tb1.objects.create(**dic) #Form的产出结果是一个字典,可以根据这个Form的字典和**直接在数据库创建数据 8 #

Django中的app及mysql数据库篇(ORM操作)

Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具.创建一个名为mysite的Django项目: django-admin startproject mysite 创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下: mysite/ ma

django中模型的简单操作

class Person_Tbl(models.Model):     '''     定义人物类     '''     name = models.CharField(max_length=254,default='')                     #姓名     sex =  models.CharField(max_length=125,default='')                       #性别     height = models.IntegerField

Django中模型(三)

Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自定义模型管理器 格式:自定义名=models.Manager() 当为模型定义管理器后,Django将不再为模型生成objects模型管理器. 3.自定义管理器Manager类 概述:模型管理器是Django的模型进行与数据库进行交互个接口,一个模型可以有多个管理器. 作用:向管理器类中添加额外的方

Django中模型(五)

Django中模型(五) 六.模型查询 1.概述 查询集,表示从数据库获取的对象集合. 过滤器就是一个函数,基于所给的参数限制查询集结果.查询集可以有多个过滤器. 从sql角度来说,查询集合等价于select语句,过滤器等价于where条件. 2.查询集 A.概述 在管理器上调用过滤器方法返回查询集.查询集经过过滤器方法筛选后返回新的查询集,所以可以写成链式调用. B.惰式执行 创建查询集不会带来任何数据的访问,直到调用数据时,才会访问数据库 C.直接访问数据库的情况 迭代.序列化.与if合用

Django中Q搜索的简单应用

本节涉及: 1.Q搜索在前后端的设计 2.Django中Queryset对象的序列化(由后端扔给前端的数据必然会经过序列化) 3.前端动态地构造表格以便显示(动态创建DOM对象) 思路: 用户通过前端查询数据库内容时,可添加多个搜索框,一个搜索框内可以输入多个条件.同一搜索框内的条件是或OR关系,不同搜索框间是与AND关系.如搜索图书,每条图书信息包括名称.页数.印刷日期.类型,在一个搜索框内可选择搜索书名,以中文逗号分隔即可以书名同时搜索多本图书,同一搜索框内就是OR关系.又可以再添加输入框,