当前位置: 首页 > news >正文

Django QuerySet对象,exclude()方法

模型参考上一章内容:

Django QuerySet对象,filter()方法-CSDN博客

exclude()方法,用于排除符合条件的数据。

1,添加视图函数

Test/app11/views.py

from django.shortcuts import render
from .models import Postdef index(request):posts = Post.objects.all()return render(request, '11/index.html', {'posts': posts})# apps/books/views.pyfrom django.shortcuts import render
from .models import Bookdef book_list_view(request):# 使用filter()方法获取所有价格在10到20之间的书籍# books = Book.objects.filter(price__gte=10, price__lte=20)  # __gte是“greater than or equal to”(大于等于)的缩写,__lte是“less than or equal to”(小于等于)的缩写。# books = Book.objects.filter(price__gt=10)   # 在Django的ORM(对象关系映射)查询中,__gt是过滤条件的一个特殊语法,用于表示“大于”(greater than)。books = Book.objects.filter(price__lt=29.99)   # __lt 是“less than”(小于)的缩写。return render(request, '11/book_list.html', {'books': books})def get_book_view(request):try:# 使用get()方法获取标题为"Python Cookbook"的书籍book = Book.objects.get(id=19)# 现在book变量包含了匹配的书籍对象print(book)return render(request, '11/book_detail.html', {'book': book})except Book.DoesNotExist:# 如果没有找到匹配的书籍,返回错误信息return HttpResponse("Book not found.")except Book.MultipleObjectsReturned:# 如果找到多个匹配的书籍,返回错误信息return HttpResponse("Multiple books found with the same title.")def book_list_view_exclude(request):# 使用exclude()方法获取所有价格不等于10且标题不包含"Python"的书籍books = Book.objects.exclude(price=9.99).exclude(title__icontains="Python")return render(request, '11/book_list_exclude.html', {'books': books})

2,添加html代码

Test/templates/11/book_list_exclude.html

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>书籍列表</title>
</head>
<body><h1>书籍列表</h1>{% if books %}<ul>{% for book in books %}<li><h2>{{ book.title }}</h2><p>作者: {{ book.author }}</p><p>价格: {{ book.price }}</p></li>{% endfor %}</ul>{% else %}<p>没有找到书籍。</p>{% endif %}
</body>
</html>

3,添加路由地址

Test/app11/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('index/', views.index, name='index'),path('book_list_view/', views.book_list_view, name='book_list_view'),path('get_book_view/', views.get_book_view, name='get_book_view'),path('book_list_view_exclude/', views.book_list_view_exclude, name='book_list_view_exclude'),
]

4,访问页面 

http://127.0.0.1:8000/app11/book_list_view_exclude/

 可以看到所有价格不等于10且标题不包含"Python"的书籍数据被过滤了,没有在页面展示出来

http://www.lryc.cn/news/395000.html

相关文章:

  • Qt/C++音视频开发78-获取本地摄像头支持的分辨率/帧率/格式等信息/mjpeg/yuyv/h264
  • Go bufio包
  • C++ 类和对象 拷贝构造函数
  • C# —— Math对象
  • Face_recognition实现人脸识别
  • 1-3分钟爆款视频素材在哪找啊?这9个热门爆款素材网站分享给你
  • 武汉免费 【FPGA实战训练】 Vivado入门与设计师资课程
  • 【vite创建项目】
  • 最优化方法 运筹学【】
  • 探索 WebKit 的动感世界:设备方向和运动支持全解析
  • 高考假期预习指南
  • Spring Boot 事件监听机制工作原理
  • 【AI大模型】驱动的未来:穿戴设备如何革新血液、皮肤检测与营养健康管理
  • 【FFmpeg】avcodec_open2函数
  • matlab:对带参数a关于x的方程求解
  • Yolov10训练,转化onnx,推理
  • GEE代码实例教程详解:洪水灾害监测
  • 运维锅总详解系统设计原则
  • 深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)
  • GEE代码实例教程详解:MODIS土地覆盖分类与面积计算
  • LT86101UXE 国产原装 HDMI2.0 / DVI中继器方案 分辨率 4Kx2K 用于多显示器 DVI/HDMI电缆扩展模块
  • FastApi中的常见请求类型
  • 服务器,云、边缘计算概念简单理解
  • 【Linux系列2】Cmake安装记录
  • C++ STL 多线程库用法介绍
  • Jmeter实现接口自动化
  • 【大模型】多模型在大模型中的调度艺术:解锁效率与协同的新境界
  • LeetCode 704, 290, 200
  • 如何利用Java进行大数据处理?
  • 【论文通读】GUICourse: From General Vision Language Model to Versatile GUI Agent