python - 当 QuerySet 传递给上下文处理器时,Django 执行相同的查询 5 次

标签 python django optimization django-queryset

我有这个查询集:

brand = get_object_or_404(Brand, shortcut=shortcut)
ads = Ad.objects.filter(mod__submodel__model__brand = brand).values('id')

但由于某种原因,django 执行相同的查询 5 次(查询次数不取决于行数)。这是它:

SELECT ••• FROM "catalog_ad" INNER JOIN "catalog_mod" ON ("catalog_ad"."mod_id" = "catalog_mod"."id") INNER JOIN "catalog_submodel" ON ("catalog_mod"."submodel_id" = "catalog_submodel"."id") INNER JOIN "catalog_model" ON ("catalog_submodel"."model_id" = "catalog_model"."id") WHERE "catalog_model"."brand_id" = 1 LIMIT 21

那么为什么 django 会执行同一个查询 5 次呢?

更新:只有当我将广告传递给上下文处理器时才会发生这种情况,如下所示:

return render(request, 'cat.html', {ads:ads})

最佳答案

这是一个非常愚蠢的问题。仅当 django 找不到所需模板且 DEBUG 设置为 true 时,才会发生这种情况。

关于python - 当 QuerySet 传递给上下文处理器时,Django 执行相同的查询 5 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381467/

相关文章:

django - 为什么这个 Jinja2 模板渲染速度不比 Django 快?

mysql - MySQL 对 select ... in (ID1,ID2,ID3,...ID100) 的性能是否良好?

python - 在 vagrant up 上运行 python 脚本

python - 如何为 Matplotlib 小部件(navBar/canvas)设置 PyQT4 样式表?

Python 读取当前 url 以存储 session 以供稍后返回

python - 下载文件并在响应中重定向

linux - system_call_after_swapgs,我的代码大部分时间都花在哪里?

mongodb - 如何根据 Mongodb 中的键删除重复项?

python - 从 pandas 数据框(库存)计算数据的更有效方法

python - 如何从 csv 文件中提取特定列并使用 python 绘图