get_object_or_404

用特定查询条件获取某个对象,成功则返回该对象,否则引发一个 Http404。

get_object_or_404(klass, *args, **kwargs)

参数:

  • 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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容