1.get
2.filter
3.all
4.values
5.values_list
1.get
- get是获取一个对象(object),获取数据只会返回一条匹配的结果,获取的数据只能在数据库中有一条。
- 如果返回多个结果,会引发MultipleObjectsReturned异常;如果没有任何匹配到的结果也会引发DoesNotExist异常
一般使用python manage.py shell 去测试疑问
返回的是一个Goods object (1)(一个对象)
2.filter
- filter?当面对有多个对象的时候,就不能用 get 了,而应该用 filter。
- filter 返回的是一个列表查询集(QuerySet)
使用first()也就相当于列表的索引,也是相当于获取的是一个对象和get一样
列表的索引?
?
?
3.all
all? 获取一个表中的所有数据,返?QuerySet 数据对象
?4.values
- values(*fields) 返回一个查询集结果,但是迭代访问时返回的是字典,而不是数据实例对象
- ?values() 接收可选的位置参数 *fields,它指定 SELECT 应该限制哪些字段。比如下面筛选 mail 信息:
?5.values_list
- values_list(*fields, flat=False)? ? 返回的是元组而不是字典。每个元组包含传递给 values_list() 调用的字段的值,所以第一个元素为第一个字段,以此类推
?
- ?如果只传递一个字段,你还可以传递 flat 参数。如果为 True,它表示返回的结果为单个值而不是元组。
values方法可以获取number字段的字典列表。 values_list可以获取number的元组列表。 values_list方法加个参数flat=True可以获取number的值列表。
django_filter的values / values_list - 简书
?6.写到这里就结束了,这是博主自己总结的,希望能帮到疑惑的你
|