我想使用django ifequal
和else
标记来判断变量是否等于80
或22
。所以,这是代码:
{% if firewalls %}
<thead>
<tr>
<th>IP address</th>
<th>Function</th>
</tr>
</thead>
{% endif %}
<tbody>
{% for firewall in firewalls %}
<tr>
<td>{{ host_ip }} : {{ firewall.from_port }}</td>
{% ifequal firewall.to_port 22 %} <td>Ssh Service</td>
{% ifequal firewall.to_port 80 %} <td>Web Service</td>
{% else %} <td>Unknown Service</td>{% endifequal %}{% endelse %}
</tr>
{% endfor %}
错误是Invalid block tag: 'endelse', expected 'else' or 'endifequal'
。有人可以帮助我吗?非常感谢!
答案 0 :(得分:3)
ifequal标记的替代方法是使用if标记和==运算符。以及#39; ==&#39;运营商:
{% if firewall.to_port == 20 %}
<td>Ssh Service</td>
{% elif firewall.to_port == 80 %}
<td>Web Service</td>
{% else %}
<td>Unknown Service</td>
{% endif %}
这样您也可以节省代码处理时间,因为它不会评估每个端口号的条件。
答案 1 :(得分:2)
Django支持相等运算符。要解决您的代码问题,我已经使用过:
{% if firewalls %}
<thead>
<tr>
<th>IP address</th>
<th>Function</th>
</tr>
</thead>
{% endif %}
<tbody>
{% for firewall in firewalls %}
<tr>
<td>{{ host_ip }} : {{ firewall.from_port }}</td>
{% if firewall.to_port==22 %} <td>Ssh Service</td>
{% elif firewall.to_port==80 %} <td>Web Service</td>
{% else %} <td>Unknown Service</td>{% endif %}
</tr>
{% endfor %}
答案 2 :(得分:0)
{% ifequal firewall.to_port 22 %} <td>Ssh Service</td>{% endifequal %}
{% ifequal firewall.to_port 80 %} <td>Web Service</td>{% endifequal %}
{% if firewall.to_port !=22 and if firewall.to_port !=80 %} <td>Unknown Service</td>{% endif %}
每个ifequal
你需要用endifequal
错过一个