模板无法计算数据库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']
现在,我将使用模型名中的函数itget\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}
?在我的情况下,它没有,而我认为它会。祝你,祝你的项目好运。