用特定查詢條件獲取某個對象,成功則返回該對象,否則引發(fā)一個 Http404。
get_object_or_404(klass, *args, **kwargs)
參數(shù):
klass
接受一個 Model 類,Manager 或 QuerySet 實例,表示你要對該對象進行查詢。**kwargs
查詢條件,格式需要被 get() 和 filter() 接受。
例子:
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from myApp.models import Book
def my_view(request):
context = {}
# 查詢主鍵為1的書,找不到返回http404
books = get_object_or_404(Book, pk=1)
context['books'] = books
return render(request, 'my_view.html', context)
除了傳遞一個 Model,還可以傳遞一個 QuerySet 實例:
queryset = Book.objects.filter(title__startswith='紅')
books = get_object_or_404(queryset, pk=1)
以上寫法等價于:
get_object_or_404(Book, title__startswith='紅', pk=1)