【问题标题】:How to create a single checkbox in WTForms?如何在 WTForms 中创建单个复选框?
【发布时间】:2017-08-10 00:28:00
【问题描述】:

我在网上找到的大部分信息都是针对多个复选框的。我只想要1个。

我有:

class CategoryForm(FlaskForm):
    category = StringField('category',validators=[DataRequired()])
    checkbox = BooleanField('Private?')

@app.route('/category/<categoryid>',methods=('GET','POST'))
def category(categoryid):
    category = Category.query.get(categoryid)
    if request.method == 'POST':
        if request.form.get('category'):
            category.name = request.form['category']
            category.private = request.form['private']
            db.session.add(category)
            db.session.commit()
            return redirect(url_for('index'))

    c_form = CategoryForm()
    c_form.category.data = category.name
    return render_template('category.html',form =c_form,category=category)

还有我的“类别”模板:

<form method="post">
    {{ form.hidden_tag() }}
    {{ form.checkbox }}
    <button type="submit">Go!</button>
</form>

现在我的浏览器呈现这个:

<peewee.BooleanField object at 0x105122ad0> Go!

显然我希望它改为呈现复选框。我怎样才能做到这一点?我需要一个小部件吗?

【问题讨论】:

  • 代码运行良好。至少在我的电脑里。
  • 该代码在我的电脑上也可以正常工作。从哪里导入字段?

标签: flask wtforms flask-wtforms


【解决方案1】:

我的印象是您正在使用来自 peewee 的字段作为表单中的字段,这是行不通的。最有可能的情况是您同时导入了两者,而一个导入覆盖了另一个。

如果您需要将模型和表单放在同一个文件中,请使用别名。

from peewee import BooleanField as PeeBool

from wtforms import BooleanField as WTBool

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    相关资源
    最近更新 更多