学到关于数据库过滤方面的内容总结部分注意点:

views.py

def TestFilter(request):
# 多条件过滤
# list=BookInfo.book_manager.filter(pk__gt=5,btitle__contains='h')
# 过滤符合条件的第一个值
# list=BookInfo.book_manager.filter(pk__gt=5,btitle__contains='h').first()
# 过滤符合条件的最后一个值
# list=BookInfo.book_manager.filter(pk__gt=5,btitle__contains='h').last()
# 查询是否存在符合条件的数据,返回true或false
# list=BookInfo.book_manager.filter(pk__gt=5,btitle__contains='h').exists()
# 统计符合条件的数据的总数
# list=BookInfo.book_manager.filter(pk__gt=5,btitle__contains='h').count()
context={
'list':list
}
return render(request,'filter.html',context) 1.注意当使用filter过滤时,返回的是一个可迭代对象,这时候模板需要用for来循环把值输出
{% for book in list%}
{{ book }}
{% endfor %} 而如果使用了first(),last(),exists(),count()的方法,只返回一个对象,模板就不能用for,否则报错
'int' object is not iterable大概意思就是返回的不是一个可迭代对象
所以返回一个对象的时候模板不能用for要改为{{book}} 相反如果是filter返回了一个可迭代的对象,而模板没有使用for,只是使用{{book}}的话不会报错,直接返回: <QuerySet [<BookInfo: hahahha>, <BookInfo: hehehehehe>]>直接返回了一个QuerySet类型的列表对象。
2.如果first函数直接这样用
list=BookInfo.book_manager.first(pk__gt=5,btitle__contains='h')是会报错
first() got an unexpected keyword argument 'pk__gt'
所以,注意不要在first last这些函数里面放入筛选条件
list=BookInfo.book_manager.first()这种写法是可以的,直接返回表里的第一个数据,只是没有筛选条件
所以如果需要添加筛选条件,就要先使用,filter,然后再用first()last()来提取符合条件的第一个或最后一个值。 get()返回单个对象
如果返回值有多个对象则报
  • 如果未找到会引发"模型类.DoesNotExist"异常
  • 如果多条被返回,会引发"模型类.MultipleObjectsReturned"异常
												

【Django】关于数据过滤的更多相关文章

  1. Django Model数据访问Making queries

    创建完Model之后, Django 自动为你提供一套数据库抽象层的API,利用它可以完成创建,提取,更新,删除对象的操作. 以下面的Model为例: class Blog(models.Model) ...

  2. 解决-Django使用filter过滤时间,无法获取月份的问题

    django中的filter日期查询属性有:year.month.day.week_day.hour.minute.second 但是但我在使用过滤查询是却总是无法过滤出月份,各种查资料,最后才发现是 ...

  3. django model数据 时间格式

    from datetime import datetime dt = datetime.now() print '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( ...

  4. ABP框架 - 数据过滤

    文档目录 本节内容: 简介 预定义过滤 ISoftDelete 何时可用? IMustHaveTenant 何时可用? IMayHaveTenant 何时可用? 禁用过滤 关于using声明 关于多租 ...

  5. C#实现通用数据过滤窗体

    最近一直在做WINFORM项目,所以经常有些新的想法或尝试与大家分享,之前与大家分享了通用窗体遮罩层.通用可附加数据绑定的DataGridView.窗体渐显,今天来分享一个大家在其它软件中常见的功能: ...

  6. php数据过滤函数与方法示例【转载】

    1.php提交数据过滤的基本原则 1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了.其实在涉及到变量取值时,intval( ...

  7. PHP数据过滤

    1.php提交数据过滤的基本原则  1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了.其实在涉及到变量取值时,intval ...

  8. SQL学习之高级数据过滤

    一.高级数据过滤之IN操作符 IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配.IN取一组由逗号分隔.括在圆括号中的合法值.代码如下: select ItemId,ItemName,Che ...

  9. FastReport 数据过滤

    FastReport 数据过滤 在DataBind 的 OnBeforePrint 设置条件   例:显示 大于0 的数据 procedure MasterData1OnBeforePrint(Sen ...

  10. .NET WinForm程序中给DataGridView表头添加下拉列表实现数据过滤

    转:http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能,可以通过点击表头上的下拉列表来实现数据的 ...

随机推荐

  1. #电脑磁盘分区#新买的电脑一般只有C盘或者C盘和D盘,怎么加多几个盘呢

    新买的电脑一般只有C盘或者C盘和D盘,怎么加多几个盘呢 鼠标右键点击桌面我的电脑选择管理 进入计算机管理.选择磁盘管理 若桌面没有我的电脑,可按win+x键,在快捷菜单栏中点击磁盘管理 通过以上两种w ...

  2. CIFAR-10数据集读取

    参考:https://jingyan.baidu.com/article/656db9183296c7e381249cf4.html 1.使用读取方式pickle def unpickle(file) ...

  3. python中的列表的嵌套与转换

    第一种方法:这行代码的for循环的意识,是先将matrix列表中的每行的第一个元素拿出. matrix =[[1,2,3,4],[5,6,7,8],[9,10,11,12]] transposed_r ...

  4. 缓存与数据库一致性之三:缓存穿透、缓存雪崩、key重建方案

    一.缓存穿透预防及优化 缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图 11-3 所示整个过程分为如下 3 步: 缓存层 ...

  5. Dart 学习资料

    Dart 学习资料: 学习资料 网址 Dart 编程语言中文网 http://dart.goodev.org/ Dart 官方包仓库 https://pub.dartlang.org/ 你想了解的Da ...

  6. Spring Cloud(Dalston.SR5)--Zuul 网关-Hystrix 回退

    当我们对网关进行配置让其调用集群的服务时,将会执行 Ribbon 路由过滤器,该过滤器在进行转发时会封装为一个 Hystrix 命令予以执行,Hystrix 命令具有容错的功能,如果"源服务 ...

  7. 【python】变量的赋值、深浅拷贝

    python——赋值与深浅拷贝 https://www.cnblogs.com/Eva-J/p/5534037.html 啥都不说,看这个博主的文章!

  8. tomcat窗口一闪而过

    当点击bin/startup.bat,出现黑窗口一闪而过时,肯定是因为tomcat启动报错了. 错误排查方法 首先检查java环境变量是否设置正确. 其次调试tomcat,需要修改startup.ba ...

  9. pj2--图书管理系统

    这一次做得是图书管理系统. 下面是功能框图 下面是流程图 实际在做这个项目的时候根据相应的实际情况对功能流程等等做了一些小小的改变. 下面是一些值得记一笔的地方. 1.借用系统自带的导航控件(Bind ...

  10. JavaScript基础应用

    1.实现字符串的反向输出 var s="abc" s.split('').reverse().join('')​  -----> "cab" 知识点: S ...