JRC*_*hon 5 python flask wtforms
在我的flask项目中,我有views.py、models.py(SQLAlchemy到postgres)和forms.py文件。我一直在 form.py 中定义表单并从views.py 实例化它们。
我能够为 SelectField 创建动态内容,但很难为 BooleanField 创建动态内容。这是我正在尝试做的事情:
创建一个从团队中检索球员的表单(在数据库中)。为每个玩家创建一个 BooleanField。如果数据库中的“active”字段为1,则该值被选中(true),否则为未选中(false)。系统用户可以选中/取消选中任何框,然后提交表格。
我对玩家进行迭代没有问题,但我似乎无法弄清楚如何为每个 BooleanField 生成唯一的名称(如果它们具有相同的名称,我只会返回一个值)。我还需要根据用户的活动状态动态传递默认值。
我做了一些研究,看到了一些关于匹配我的 ORM 模型的想法 - 但我并不是真的试图创建一个字段条目来为我的玩家匹配我的 ORM 模型中的每一列 - 只是试图提取一些数据并创建动态表单。
也许可以在 jinja2 模板中完成这一切,但这似乎不是最好的方法......
好的 - 现在尝试变得更基础,但仍然有问题 - BooleanField 总是返回 False:
形式.py:
class myform(Form):
available = BooleanField('available')
submit = SubmitField('Save')
Run Code Online (Sandbox Code Playgroud)
视图.py:
form = myform(available=True)
Run Code Online (Sandbox Code Playgroud)
网页.html
Available: {{ form.available }}
Run Code Online (Sandbox Code Playgroud)
当网页呈现时,复选框被选中(由于 available=True),我正在传递该复选框,但当我提交时,值返回为 False)。
我确实注意到奇怪的是,即使选中该框,渲染的 HTML -<input id="available" type="checkbox" value="y" name="available" checked="">
Checked="" 对我来说没有意义。我注意到,当我删除“available=True”时,就没有checked=“”。我认为正确的 HTML 应该被检查=检查..