【发布时间】:2021-11-09 16:36:54
【问题描述】:
在我看来,我创建了一个在上下文中传递的变量,看起来像这样
{13: {112: 33.333333333333336, 120: 66.66666666666667, 125: 66.66666666666667}, 14: {110: 20.0, 111: 20.0, 113: 20.0, 121: 40.0, 126: 40.0}}
在我的模板中,我在问题的循环中,并希望将此值分配给问题内的答案:
{% for question in questions %}
<div class="ui basic padded segment left aligned">
<h4 class="ui header">
Question {{ forloop.counter }} / {{ questions|length }}: {{ question.prompt }}
</h4>
<ul>
{% for option in question.answer_set.all %}
<li> {{ forloop.counter }}) {{option.text}}:
{{ ans.{{ question.pk }}.{{ option.pk }} }} %.
{{ ans.13.120 }}
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
如果我使用 {{ ans.13.120 }} 它可以工作,但不是动态的......我想要一种在 {{ }} 中使用变量的方法......类似于:{{ ans.(question. pk).(option.pk) }}...
有可能吗?
【问题讨论】:
-
您能否展示您的模型以及您的视图中如何定义
ans? -
不,Django 故意使这变得困难,试图分离逻辑层和表示层(这样的逻辑应该是 view 的一部分)。需要这样做意味着您的视图没有以正确的格式将数据传递给您的模板。
-
@IainShelvington,ans,基本上是我在顶部显示的dict的dict。
-
@Jan 并且该字典是手动定义的?如果你从一些查询中生成它,你应该能够将它与 answer_set 结合起来
-
@IainShelvington,是的,这是我的第一种方法,但由于某种原因,这个论点没有通过......所以我必须找到一个解决方法......我什至在分开的时候问过这个问题在这里:stackoverflow.com/questions/69891569/…
标签: django templates django-queryset