我正在为学习目的创建一个烧瓶示例应用程序,我有一个名为CocktailForm的表单,其中包含一个SelectMultipleField。此窗体应用于创建新的鸡尾酒对象以及更新它们:
class CocktailForm(Form):
name = StringField('What is the coktail\'s name?', validators=[Required()])
ingredients = SelectMultipleField('Ingredients',
coerce=int,
)
submit = SubmitField('Submit')
对于编辑,我想用鸡尾酒数据加载同一个表单。它适用于名字和所有选择,但我也想选择那些鸡尾酒的成分:
^{pr2}$我得到了意想不到的结果,因为在HTML上这些选项没有显示,但是当我提交表单时,这些选项似乎总是被选中的,即使你选择了一个新的。在
模板非常简单:
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Cocktails{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>New Cocktail</h1>
{{ wtf.quick_form(form) }}
</div>
{% endblock %}
这是您在浏览器中可以看到的内容。我正在编辑金顿鸡尾酒,它是由杜松子酒和滋补品组成的。但是它们不会显示为选中:
提前谢谢,如有任何提示,我们将不胜感激
行
form.ingredients.default = [(i.id, i.name) for i in Ingredient.query.all()]
不设置所选值。您想将其更改为form.ingredients.data = [i.id for i in c.ingredients]
。在您应该在validate块中有一个redirect/render_模板,但这是可选的。在
相关问题 更多 >
编程相关推荐