単純なユーザー設定フォームのjinja2テンプレートがあります。設定は、python辞書としてrender_template()関数に渡されます。設定に応じて、グループ内のラジオボタンの1つにチェックマークを付ける必要があります。jinja2テンプレートのラジオボタンを選択
Q:きれいに行うには、コードの繰り返しはほとんどありませんか?
以下は私の現在の解決方法です。それは動作しますが、それは醜いです、そして2つ以上のラジオボタンで、それはすぐに管理するのが難しくなります。おそらくもっと良い方法があります。
私は2つの文字列変数を使用します(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>