gpt4 book ai didi

python - 具有值的 get_object_or_404

转载 作者:行者123 更新时间:2023-12-05 01:20:45 26 4
gpt4 key购买 nike

views.py:

def car(request, car_id):
car = get_object_or_404(Car, pk=car_id, active=1)
return render(request, 'car.html', {'car': car,}
)

car.html 中:

...
{{ car.mark }}, {{ car.options.year }}, etc.
...

所以,我对我的数据库有许多请求。在另一个 View 中我使用

all_cars = Cars.objects.all().filter(active=1).values(...)

在这个变体中,我只有 2 个 db 请求。

是的,我知道,我可以在汽车 View 中使用:

car = Car.objects.filter(id=car_id, active=1).values(...)[0]

是否有任何其他变体可以对 get_object_or_404 或其他东西做同样的事情,而不是对 db 做很多请求?

谢谢!

最佳答案

您可以将查询集作为第一个参数传递,而不是模型类。在这里你可以使用select_related(和prefetch_related,但你似乎需要第一个)来减少数据库查询:

def car(request, car_id):
cars = Car.objects.select_related('options')
car = get_object_or_404(cars, pk=car_id, active=1)
return render(request, 'car.html', {'car': car})

关于python - 具有值的 get_object_or_404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com