Django QuerySet对象,exclude()方法

模型参考上一章内容:

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

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

1,添加视图函数

Test/app11/views.py

from django.shortcuts import render
from .models import Post

def index(request):
    posts = Post.objects.all()
    return render(request, '11/index.html', {'posts': posts})



# apps/books/views.py

from django.shortcuts import render
from .models import Book

def 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 views

urlpatterns = [
    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"的书籍数据被过滤了,没有在页面展示出来

相关推荐

  1. Python笔记|列表对象方法

    2024-07-12 01:02:03       28 阅读
  2. 面向对象的开发方法

    2024-07-12 01:02:03       26 阅读
  3. vivado EQUIVALENT_DRIVER_OPT、EXCLUDE_PLACEMENT

    2024-07-12 01:02:03       25 阅读
  4. vue 封装对象深拷贝方法

    2024-07-12 01:02:03       45 阅读
  5. ES6之对象新增的方法

    2024-07-12 01:02:03       53 阅读
  6. 面向对象方法)、私有化、继承、多态

    2024-07-12 01:02:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 01:02:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 01:02:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 01:02:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 01:02:03       69 阅读

热门阅读

  1. [202406] 一级 填空题 1~8题 答案解析

    2024-07-12 01:02:03       22 阅读
  2. 动态模型管理:Mojo模型的自定义保存与加载控制

    2024-07-12 01:02:03       24 阅读
  3. nginx-----web服务器

    2024-07-12 01:02:03       23 阅读
  4. Vue笔记10-其它Composition API

    2024-07-12 01:02:03       23 阅读
  5. Chromium编译指南2024 Linux篇-解决运行报错信息(六)

    2024-07-12 01:02:03       23 阅读
  6. prototype 和 __proto__的区别

    2024-07-12 01:02:03       25 阅读
  7. Spring-Data-Elasticsearch

    2024-07-12 01:02:03       28 阅读
  8. npm ERR! code ENOTEMPTY npm ERR! syscall rename npm ERR!

    2024-07-12 01:02:03       23 阅读
  9. sizeof()

    2024-07-12 01:02:03       24 阅读
  10. Python 四种字符串格式化方式

    2024-07-12 01:02:03       23 阅读
  11. 存取款系统接口设计

    2024-07-12 01:02:03       20 阅读
  12. SpringBoot 自定义异常返回数据格式

    2024-07-12 01:02:03       21 阅读
  13. ubuntu 安装cups和爱普生打印机

    2024-07-12 01:02:03       20 阅读
  14. 服务器怎么进PE系统?

    2024-07-12 01:02:03       25 阅读