我正在尝试在需要动态的循环中访问会话密钥,我想通过查看我的代码无法正常工作,我会得到我想要的东西。
{% for q in questions %}
<div class="question_wrap">
<h2>{{ q }}</h2>
# this does not work
{% if not request.session.get(str(q.id), False) %}
<!-- show them vote options -->
{% else %}
<!-- dont show options -->
{% endif %}
</div>
{% endfor %}
答案 0 :(得分:2)
Django模板的语法非常有限,以防止人们在模板中放入太多逻辑,并且不允许您将参数传递给方法。
您可以准备视图中已有的元组列表,也可以为其编写一个简单的模板标记。第一个选项通常更容易:
在视图中:
questions = [(q, request.session.get(str(q.id), False)) for q in questions]
在模板中:
{% for q, has_voted in questions %}
...
{% endfor %}