如何解决Django Template If无法正常工作
我正在尝试使用Django创建HTML下拉菜单,该模板在模板中显示数字1-250,并始终在重新加载页面后选择最后一个选择。为此,我使用变量“ clea”从我的“ views.py”中的网址获取带有“ request.GET.get('clea')”的值,以将其作为上下文传递。
要在drop-dwon中选择值,我具有以下语法:
# Context: {"VIEW": {"clea": "140"}
<label style="color: white;">Amount</label>
<select class="browser-default" id="clea">
{% for _ in ''|center:250 %}
<script>console.log("{{ forloop.counter }}" == "{{ data.VIEW.clea }}")</script>
{% if "{{ forloop.counter }}" == "{{ data.VIEW.clea }}" %}
<script>console.log("Worked")</script>
<option value={{ forloop.counter }} selected> {{ forloop.counter }} </option>
{% else %}
<option value={{ forloop.counter }}> {{ forloop.counter }} </option>
{% endif %}
{% endfor %}
<script>console.log("Finished")</script>
</select>
除Django模板中的If语句外,其他所有方法都有效! 在日志中,您可以看到它始终记录为false,除非forloop.counter和data.VIEW.clea相等,然后按预期返回true。但是,尽管它在上面的行中记录了“ true”,但它永远不会记录“ Worked”。 有谁知道这可能是什么?
解决方法
我会怀疑if
语句包含您不想要的内容。
此:
{% if "{{ forloop.counter }}" == "{{ data.VIEW.clea }}" %}
只比较两个硬编码的字符串:"{{ forloop.counter }}"
和"{{ data.VIEW.clea }}"
。而且它们总是不同的,因此该子句始终为false。
尝试避免使用引号(请参见example of a similar usage):
{% if forloop.counter == data.VIEW.clea %}
请确保data.VIEW.clea
是整数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。