在我的flask项目中,我有views.py,models.py(SQLAlchemy到postgres)和forms.py文件。我一直在form.py中定义表单,从views.py中实例化它们。
我能够为SelectField创建动态内容,但是对于BooleanField很难做到这一点。这是我想要做的:
创建一个从团队中检索玩家的表单(在db中)。为每个玩家创建一个BooleanField。如果db中的“active”字段为1,则检查该值(true),否则取消选中(false)。系统用户可以选中/取消选中任何框,然后提交表单。
迭代播放器没有问题,但我似乎无法弄清楚如何为每个BooleanField生成唯一的名称(如果它们具有相同的名称,我将只返回一个值)。我还需要根据用户的活动状态动态传递默认值。
我做了一些研究并看到了一些关于匹配我的ORM模型的想法 - 但我并没有真正尝试创建一个字段条目以匹配我的ORM模型中的每一列我的玩家 - 只是想拉一些数据并动态创建表单。
可以在jinja2模板中完成所有这些,但这似乎不是最好的方法......
好的 - 现在尝试获得更多基础,仍有问题 - BooleanField总是返回False:
forms.py:
class myform(Form):
available = BooleanField('available')
submit = SubmitField('Save')
views.py:
form = myform(available=True)
webpage.html
Available: {{ form.available }}
当网页呈现复选框时(由于可用= True)我正在传递,但是当我提交时,值返回为False)。
我注意到的是,奇怪的是即使选中此框也会呈现HTML - <input id="available" type="checkbox" value="y" name="available" checked="">
Checked =“”对我没有意义。我注意到当我删除'available = True'时,没有checked =“”。我认为应该检查正确的HTML =检查..
答案 0 :(得分:-1)
如果要基于表的特定列的值动态设置checked
的{{1}}属性,则可以通过以下方式进行设置:
BooleanField
:
forms.py
# Create the boolean field in the form
is_active = BooleanField('Is Active')
:
views.py