📜  Django 模型中的 get_object_or_404 方法

📅  最后修改于: 2022-05-13 01:55:33.235000             🧑  作者: Mango

Django 模型中的 get_object_or_404 方法

有些函数每次编写代码既困难又乏味。但是 Django 用户不必担心这一点,因为 Django 有一些很棒的内置函数,可以让我们的工作变得轻松愉快。让我们在这里讨论 get_object_or_404()。

如何在 Django 项目中使用 get_object_or_404()?

此函数调用给定的模型并从中获取对象,如果该对象或模型不存在,则会引发 404 错误。

例子:

假设我们想从产品模型中获取第三个产品,那么我们可以使用:

Python3
# 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)


Python3
# 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....")


这是 Django 的优势,如果你硬编码,那么你必须写这么多行代码:

蟒蛇3

# 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....")

将 get_object_or_404() 与 QuerySet 一起使用:

QuerySet 实例用于在从数据库中获取数据时过滤数据。例如,我们只想获取鞋子,那么我们可以这样写:

queryset = Products.objects.filter(type='shoes')
get_object_or_404(queryset)

我们可以用一行来简化上面的例子:

get_object_or_404(Products, type='shoes')