2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
См. предыдущую главу для модели:
Объект Django QuerySet, метод filter() — блог CSDN
Метод исключения() используется для исключения данных, соответствующих условиям.
Тест/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})
Тест/шаблоны/11/book_list_exclude.html