我正在使用Django构建一个聊天机器人,它可以接受调查的预设答案选项,并对不同的答案选项给予给予不同的分数。之后,聊天机器人将相应地对所有分数进行求和,并打印出结果。
这是一个带有预设答案选项的示例问题
<select name="survey1-q" data-conv-question="Bạn có hay nghĩ về một điều sẽ xảy ra trong tương lai theo hướng tồi tệ, thậm chí rất tiêu cực?">
<option value="survey1-never">Không bao giờ</option>
<option value="survey1-rarely">Hiếm khi</option>
<option value="survey1-sometimes">Đôi khi</option>
<option value="survey1-often">Thường xuyên</option>
<option value="survey1-veryoften">Rất thường xuyên</option>
</select>
字符串
这是for循环中的if语句
<!--looping and getting the survey's result-->
{% for i in survey1-q%}
{% if survey1-q is "Không bao giờ"%}
{{score}}={{score + 0}}
{% elif survey1-q is "Hiếm khi" %}
{{score}}={{score + 1}}
{%elif survey1-q is "Đôi khi"%}
{{score}}={{score + 2}}
{%elif survey1-q is "Thường xuyên"%}
{{score}}={{score + 3}}
{%elif survey1-q is "Rất thường xuyên"%}
{{score}}={{score + 4}}
{%endif%}
{% endfor %}
<p>Điểm của bạn là {{score}}</p>
型
然而,在调查的问题完成后,聊天机器人会自动加载回到开始阶段,并提出第一个问题,而不是打印{{score}}
在for循环和if语句中,我很抱歉我把变量都叫错了,但是经过研究,我还是不明白。请帮助我!谢谢!
1条答案
按热度按时间iaqfqrcu1#
HTML页面不能在页面刷新之间存储变量。Django模板语言使用变量,但当您的表单验证时,它们会重置,因此当页面从后端重新加载时。
逻辑应该在后端。您的表单应该将结果发送到后端(Django视图
view.py
),在那里可以计算,存储和/或在Python中检索分数。视图的输出可以将模板沿着呈现为模板变量。所以,假设你的HTML
select
是HTML表单的一部分,它将输入作为名为survey_response
的GET参数发送回来,你的Python视图view.py
看起来像这样:字符串
然后在模板的一侧(
your_template.html
),你不需要任何循环,也不需要任何逻辑,唯一的事情就是用<p>Điểm của bạn là {{score}}</p>
渲染分数。