Django模型中的get_object_or_404方法
有些函数每次都很难以及枯燥地进行编码。但Django用户不必担心这个问题,因为Django有一些很棒的内置函数,让我们的工作变得轻松愉快。让我们在这里讨论get_object_or_404()。
如何在Django项目中使用get_object_or_404()
这个函数调用给定的模型,并从中获取对象,如果该对象或模型不存在,则引发404错误。
示例:
假设我们想从产品模型中获取第三个产品,那么我们可以使用。
# import get_object_or_404()
from django.shortcuts import get_object_or_404
# defining view
def product_view(request):
#
retrieving product (pk is primary key)
product = get_object_or_404(Products, pk=3)
这就是Django的优势,如果你硬编码,那么你必须写这么多行代码。
# import Http404
from django.http import Http404
# defining view
def product_view(request):
# try except logic
try:
product = Products.objects.get(pk=1)
except Products.DoesNotExist:
raise Http404("Given query not found....")
在QuerySet中使用get_object_or_404()
QuerySet实例用于在从数据库获取数据时过滤数据。例如,我们想只获取鞋子,那么我们可以写。
queryset = Products.objects.filter(type='shoes')
get_object_or_404(queryset)
我们可以用一句话来简化上述例子。
get_object_or_404(Products, type='shoes')