django中一些快捷函数

1.get_object_or_404()

接收两个参数,参数1为模型类,参数2为查询参数
查询到对象则返回对象,查询不到则返回http404,但是不会返回模型的DoesNotExist异常
示例:
from django.shortcuts import get_object_or_404
def my_view(request):
      obj = get_object_or_404(MyModel, pk=1)

上面的示例也相当于:
from django.http import Http404
def my_view(request):
      try:
            obj = MyModel.object.get(pk=1)
      except MyModel.DoesNotExist:
            raise Http404('查询结果不存在')

2.get_list_or_404()

接收两个参数,参数1位模型类,参数2为查询参数
将查询出来的queryset集合转化为列表,如果结果列表为空,则会引发Http404
示例:
from django.shortcuts import get_list_or_404
def my_view(request):
      my_objects = get_list_or_404(MyModel, bookname='三国')
上面的示例也想当于
from django.http import Http404
def my_view(request):
      my_objects = list(MyModel.object.filter(bookname='三国'))
      if not my_objects:
            raise Http404('查询结果不存在')
posted @ 2020-11-12 23:17  我在路上回头看  阅读(116)  评论(0编辑  收藏  举报