0
我有一個簡單的用戶首選項表單的jinja2模板。首選項作爲Python字典傳遞到render_template()函數中。根據不同的設置,我需要將組中的一個單選按鈕標記爲已選中。在jinja2模板中選擇一個單選按鈕
問:如何幹淨地做,沒有太多的代碼重複?
下面是我目前的解決方案。它很有用,但它很醜,而且有兩個以上的單選按鈕,很快就會變得難以管理。可能有更好的方法。
我使用兩個字符串變量(爲2個無線電btns)。其中一人將是空的,而另一個將被設置爲「檢查」,根據喜好設置:
{% if user_prefs['when_done'] == 'index' %}
{% set indexchecked = 'checked' %}
{% set backchecked = '' %}
{% else %}
{% set indexchecked = '' %}
{% set backchecked = 'checked' %}
{% endif %}
<!-- With more radio buttons here, this would be a mess! -->
然後我在模板中使用這些字符串:
<form action="{{ url_for('prefs') }}" method="post">
<fieldset>
<div class="radio text-left">
<p><strong>After completing a task:</strong></p>
<label>
<input type="radio" name="when_done" value="index" {{ indexchecked }}>
Return to homepage
</label>
<br/>
<label>
<input type="radio" name="when_done" value="task" {{ taskchecked }}>
Go to next task
</label>
</div>
<div class="form-group">
<button class="btn btn-default" type="submit">Update preferences</button>
</div>
</fieldset>
</form>