【发布时间】:2017-12-08 17:32:37
【问题描述】:
我有一个问题模型,我将其作为上下文传递给模板
class Question(models.Model):
possible_answer1 = models.TextField(
'Possible Answer 1',
max_length=1000,
default='none'
)
possible_answer2 = models.TextField(
'Possible Answer 2',
max_length=1000,
default='none',
blank=True
)
possible_answer3 = models.TextField(
'Possible Answer 3',
max_length=1000,
default='none',
blank=True
)
possible_answer4 = models.TextField(
'Possible Answer 4',
max_length=1000,
default='none',
blank=True
)
possible_answer5 = models.TextField(
'Possible Answer 5',
max_length=1000,
default='none',
blank=True
)
possible_answer6 = models.TextField(
'Possible Answer 6',
max_length=1000,
default='none',
blank=True
)
如果我使用,我可以访问所有答案对象没有问题
{{ context.this_question.question.possible_answer1 }}
{{ context.this_question.question.possible_answer2 }}
.
.
{{ context.this_question.question.possible_answer6 }}
问题是我不需要一直显示所有 6 个答案,所以我试图构建 for 循环,该循环只会根据以下线程使用 with 标签 @ 在特定时间显示我需要的内容987654321@1。在下面的示例中,mylist 包含四个元素,所以我尝试了这个
{% for x in mylist %}
{% with possible_answer='context.this_question.question.possible_answer'|add:forloop.counter %}
{{ possible_answer }}
{% endwith %}
{% endfor %}
希望它会产生
{{ context.this_question.question.possible_answer1 }}
{{ context.this_question.question.possible_answer2 }}
{{ context.this_question.question.possible_answer3 }}
{{ context.this_question.question.possible_answer4 }}
并因此显示上下文对象中的相应项目,就好像我自己键入它一样,但它不起作用。什么都没有显示
如果将 forloop.counter 替换为任何字符串,它将显示连接的字符串,而不会尝试在上下文中获取值。
有人知道如何实现这一目标吗?
【问题讨论】: