我有一个jinja2 if
语句,我正在检查字典项是否等于id,但是它似乎永远不会正确地评估它或根本。
下面是我的if
语句:
<select id="deviceTypes" class="inputBoxes" style="height: 25px;">
{% for key, value in deviceTypes.iteritems() %}
{% if deviceTypeID == key %} --> deviceTypeID is defined but this block of code never runs (key is an integer value, it's the id of the option)
<option value="{{key}}" selected>{{deviceTypeID}}</option>
{% else %}
<option value="{{key}}">{{value}}</option>
{% endif %}
{% endfor %}
</select>
很可能你的deviceTypeID
是从请求和仍然是一个字符串。确保它是一个整数:
{% if deviceTypeID|int == key %}
或者更好的是,当您从请求中获得它时,将其转换为整数。许多web框架允许您在检索值时将其转换为整数;Flask允许你这样做:
deviceTypeID = request.form.get('deviceTypeID', type=int)
例如。
你能试着在检查中加上" not "吗?这将告诉您条件是否为false
。
{%如果没有deviceTypeID == key %}
答案:
{% if not deviceTypeID == key %}
<option value="{{key}}">{{value}}</option>
{% else %}
<option value="{{key}}" selected>{{deviceTypeID}}</option>
{% endif %}