模板无法计算数据库queryset django

模板无法计算数据库queryset django,django,python-3.x,django-models,django-templates,django-views,Django,Python 3.x,Django Models,Django Templates,Django Views,我正在处理这一有线问题。我希望我能描述得很好 本案: 假设我有以下类型或标识符: classes = ['classa','classb','classc','classd'] 对于上述每一类,我也有两个子类: subclasses = ['suba','subb'] 现在,我将使用模型名中的函数itget\u data\u filtered(a,b)从这些类和子类上过滤的数据库中检索数据点,如下所示: context['custom-data'] = ( {c: {

我正在处理这一有线问题。我希望我能描述得很好

本案: 假设我有以下类型或标识符:

classes = ['classa','classb','classc','classd']
对于上述每一类,我也有两个子类:

subclasses = ['suba','subb']
现在,我将使用模型名中的函数it
get\u data\u filtered(a,b)
从这些类和子类上过滤的数据库中检索数据点,如下所示:

context['custom-data'] = (
            {c: {subc: self.get_object().get_data_filtered(c,subc)} for c in
             classes for subc
             in subclasses})
{% for c,subcdict in custom-data.items %}
    {% for subckey,objlist in subcdict.items %}
        {% for obj in objlist %}
            <p>{{ obj.prop }}</p>
        {% endfor %}
    {% endfor %}
{% endfor %}
在视图级别将此上下文打印到控制台时,一切正常。但是,当将其传递到模板并在那里访问它时,不会检索任何数据

使用Django调试工具栏查看模板时,模板上下文显示以下内容:

context['custom-data']:'<<triggers database query>>'
我的分析 我认为queryset从未得到过这样的评价。我还尝试放置
.all()
列表(…)
,但没有得到任何有用的结果

queryset可以这样评估吗

如果有更好的方法来完成这项任务,请提供建议


Django版本:2.2

我发现我没有正确访问模板级别的上下文。应通过钥匙进入,如下所示:

context['custom-data'] = (
            {c: {subc: self.get_object().get_data_filtered(c,subc)} for c in
             classes for subc
             in subclasses})
{% for c,subcdict in custom-data.items %}
    {% for subckey,objlist in subcdict.items %}
        {% for obj in objlist %}
            <p>{{ obj.prop }}</p>
        {% endfor %}
    {% endfor %}
{% endfor %}
{%for c,custom-data.items%中的subdict}
{subkey的%objlist位于subdict.items%}
{objlist%中的obj为%1}
{{obj.prop}}

{%endfor%} {%endfor%} {%endfor%}

感谢@moh369在帖子评论中的观察。

我发现我没有正确访问模板级别的上下文。应通过钥匙进入,如下所示:

context['custom-data'] = (
            {c: {subc: self.get_object().get_data_filtered(c,subc)} for c in
             classes for subc
             in subclasses})
{% for c,subcdict in custom-data.items %}
    {% for subckey,objlist in subcdict.items %}
        {% for obj in objlist %}
            <p>{{ obj.prop }}</p>
        {% endfor %}
    {% endfor %}
{% endfor %}
{%for c,custom-data.items%中的subdict}
{subkey的%objlist位于subdict.items%}
{objlist%中的obj为%1}
{{obj.prop}}

{%endfor%} {%endfor%} {%endfor%}

感谢您在帖子评论中对@moh369的观察。

过滤后的数据是什么样子的?@Alex,这只是模型对象上的一句话;提供代码,因为大多数用户没有时间想象code@Moha369,整个文章可以简化为以下问题:模板能否将具有键值对的上下文呈现为
context['custom-data']={c{subc:ModelClass.objects.all()}for c in class for subc in subclass}
?在我的情况下,它没有,而我认为它应该。祝你的项目好运。
获取数据\u过滤后的数据是什么样子的?@Alex,这只是模型对象上的一个语句
过滤
。这没有帮助;提供代码,因为大多数用户没有时间想象code@Moha369,整个文章可以简化为以下问题:模板能否将具有键值对的上下文呈现为
context['custom-data']={c{subc:ModelClass.objects.all()}for c in class for subc in subclass}
?在我的情况下,它没有,而我认为它会。祝你,祝你的项目好运。