如何在 WTForms 中创建单个复选框?
How to create a single checkbox in 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)
还有我的 'category' 模板:
<form method="post">
{{ form.hidden_tag() }}
{{ form.checkbox }}
<button type="submit">Go!</button>
</form>
现在我的浏览器呈现这个:
<peewee.BooleanField object at 0x105122ad0> Go!
显然我希望它呈现复选框。我怎样才能做到这一点?我需要小部件吗?
我的印象是您将 peewee
中的字段用作表单中的字段,这是行不通的。最可能的情况是您同时导入了两者,而一个导入覆盖了另一个。
如果您需要在同一个文件中同时拥有模型和表单,请使用别名。
from peewee import BooleanField as PeeBool
from wtforms import BooleanField as WTBool
我在网上找到的大部分信息都是针对多个复选框的。我只想要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)
还有我的 'category' 模板:
<form method="post">
{{ form.hidden_tag() }}
{{ form.checkbox }}
<button type="submit">Go!</button>
</form>
现在我的浏览器呈现这个:
<peewee.BooleanField object at 0x105122ad0> Go!
显然我希望它呈现复选框。我怎样才能做到这一点?我需要小部件吗?
我的印象是您将 peewee
中的字段用作表单中的字段,这是行不通的。最可能的情况是您同时导入了两者,而一个导入覆盖了另一个。
如果您需要在同一个文件中同时拥有模型和表单,请使用别名。
from peewee import BooleanField as PeeBool
from wtforms import BooleanField as WTBool