Python 减少Django查询!在一个查询中而不是在多个查询中获取所有结果?

Python 减少Django查询!在一个查询中而不是在多个查询中获取所有结果?,python,django,django-queryset,Python,Django,Django Queryset,在我的程序中,我将获取属于一个表并且属于某个类别的所有项目。这应该是一个非常简单的SQL查询……但Django似乎让事情变得更加复杂 sqs = super(ItemView, self).get_queryset() res = sqs.exclude(item_status='hidden') return res 应该找到大约50件物品。在视图中,Django获得一个充满对象的queryset。这将被发送到前端,在那里它被循环并添加到页面中 {% for item in items %}

在我的程序中,我将获取属于一个表并且属于某个类别的所有项目。这应该是一个非常简单的SQL查询……但Django似乎让事情变得更加复杂

sqs = super(ItemView, self).get_queryset()
res = sqs.exclude(item_status='hidden')
return res
应该找到大约50件物品。在视图中,Django获得一个充满
对象的queryset。这将被发送到前端,在那里它被循环并添加到页面中

{% for item in items %}
    {% individual_item %}
{% endfor %}
Django工具栏为每个项目显示一个单独的查询,因此在本例中,应该是一个项目的查询超过50个


我只是误解了Django的工作原理,这是正常的行为吗?或者,是否有一种方法可以让我将其作为一个简单的查询运行,并将所有结果从视图发送到前端?

这可能是因为您还打印了相关对象的数据。然后您需要
。选择与\u相关的
,或
。预取与\u相关的
@WillemVanOnsem,可能是这样的。然而,由于程序使用的是Haystack,我显然使用的是SearchQuerySet,它不适用于
预回迁相关的
。我试图使用sqs的
过滤器和
,但现在我遇到了非常好的错误。。。。