Python 有没有办法从html模板中动态设置wtform radiofield的默认值?
我试图在HTML模板中动态设置一个radio字段的值,但我不确定如何设置默认选择。我之所以要这样做,是因为我要使用的表单是可以保存并在需要时重新编辑的表单,所以我希望默认值是以前保存/提交时设置的值 wtform字段Python 有没有办法从html模板中动态设置wtform radiofield的默认值?,python,flask,jinja2,wtforms,Python,Flask,Jinja2,Wtforms,我试图在HTML模板中动态设置一个radio字段的值,但我不确定如何设置默认选择。我之所以要这样做,是因为我要使用的表单是可以保存并在需要时重新编辑的表单,所以我希望默认值是以前保存/提交时设置的值 wtform字段 field_1=StringField('field_1') radio_1=RadioField('radio_1',选项=[(1,'Yes'),(2,'No')) 我想做的是这样的事情: <ul class="ff-style-radio" id="radio_1"&g
field_1=StringField('field_1')
radio_1=RadioField('radio_1',选项=[(1,'Yes'),(2,'No'))
我想做的是这样的事情:
<ul class="ff-style-radio" id="radio_1">
<li>
{% if data.field_1 = 'X' %}
<input id="radio_1-0" name="radio_1" type="radio" value="Yes" checked>
{% else %}
<input id="radio_1-0" name="radio_1" type="radio" value="Yes">
{% endif %}
<label for="radio_1-0">Yes</label>
</li>
<li>
{% if data.field_1 = 'X' %}
<input id="radio_1-1" name="radio_1" type="radio" value="No">
{% else %}
<input id="radio_1-1" name="radio_1" type="radio" value="No" checked>
{% endif %}
<label for="radio_1-1">No</label>
</li>
</ul>
数据是数据库数据
{% if data.field_1 = 'X' %}
{{ form.radio_1(id="radio_1",class="ff-style-radio",default=1) }}
{% else %}
{{ form.radio_1(id="radio_1",class="ff-style-radio",default=2) }}
{% endif %}
我还没有成功尝试过这种方法,将默认值替换为值,等等。像这样的事情可能吗?如果没有,我将如何将WTF与无线电字段选项分开,以便手动标记选中的选项?或者我应该使用基本HTML方法并执行以下操作:
<ul class="ff-style-radio" id="radio_1">
<li>
{% if data.field_1 = 'X' %}
<input id="radio_1-0" name="radio_1" type="radio" value="Yes" checked>
{% else %}
<input id="radio_1-0" name="radio_1" type="radio" value="Yes">
{% endif %}
<label for="radio_1-0">Yes</label>
</li>
<li>
{% if data.field_1 = 'X' %}
<input id="radio_1-1" name="radio_1" type="radio" value="No">
{% else %}
<input id="radio_1-1" name="radio_1" type="radio" value="No" checked>
{% endif %}
<label for="radio_1-1">No</label>
</li>
</ul>
-
{%if data.field_1='X%}
{%else%}
{%endif%}
对
-
{%if data.field_1='X%}
{%else%}
{%endif%}
不
感谢您的帮助如果您想使用表单编辑数据库中已有的数据,您应该在创建表单时在视图功能中将这些数据提供给表单。这将允许您保持模板的简单性和可重用性。数据库中的数据可以作为对象或字典传递给表单。如果表单直接映射到数据库表,则只需从查询中传递未经修改的数据即可。在下面的代码中,我按照您的示例创建了一个新字典,根据
字段_1
的值设置无线电_1
的值
@app.route("/myurl")
def myview():
# do database lookup here
olddata = {"radio_1": 1 if data.field_1 == "X" else 2}
form = Myform(formdata=request.form, data=olddata)
if request.method == "POST" and form.validate():
# .....