如何在 WTForms 中创建单个复选框?

Big*_*337 3 flask wtforms flask-wtforms

我在网上找到的大部分信息都是针对多个复选框的。我只想要 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)
Run Code Online (Sandbox Code Playgroud)

我的“类别”模板:

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

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

<peewee.BooleanField object at 0x105122ad0> Go!
Run Code Online (Sandbox Code Playgroud)

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

Lui*_*duz 6

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

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

from peewee import BooleanField as PeeBool

from wtforms import BooleanField as WTBool
Run Code Online (Sandbox Code Playgroud)