python - WTForms SelectField 返回无
问题描述
我正在使用 WTForms 和 Flask,我正在尝试创建一个表单,我可以在其中输入有关食谱的信息,但 product_name SelectField 每次都返回 None。
表格:
class CreateRecipeForm(Form):
product_name = SelectField(choices=get_craftables_options())
product_quantity = IntegerField(default=1)
job_field = SelectField(choices=['ALC', 'GSM', 'WVR'])
line_item_list = FieldList(FormField(RecipeLineForm), min_entries=6)
save_button = SubmitField()
风景:
@bp.route('/edit/new', methods=('GET', 'POST'))
def create_recipe():
form = CreateRecipeForm()
if request.method == 'POST':
selected_product = Item.query.get(form.product_name.data)
(do stuff here)
模板
{% block content %}
<form method="post">
{{ render_field(form.product_name) }}
{{ render_field(form.product_quantity) }}
{{ render_field_no_label(form.line_item_list) }}
{{ render_field_no_label(form.save_button) }}
</form>
{% endblock %}
解决方案
我相信您的问题在于声明 product_name。确保 get_craftables_options() 应该是一个函数,并返回与选项参数兼容的项目列表。
product_name = SelectField(choices=get_craftables_options())
推荐阅读
- python - 如何让 Microsoft Edge(和其他 Windows 应用程序)干净地关闭?
- html - DNN 动态输入到模板
- google-bigquery - 如何定义在子查询中引用通配符表的 BQ 视图?
- javascript - 如何在 iOS 键盘(Web / Hybrid / PWA)上的“tel”输入中获得句点
- python - Python pandas 到 DataFrame 的对象列表
- php - 明确书面陈述的解释
- c++ - 这些案例有什么区别?我怎么知道什么是临时对象?
- java - Cucumber Spring Test @ConfigurationProperties 不向对象的字段注入属性
- typescript - 打字稿:与前一个参数的解析类型相同的泛型类型
- angular - Angular - Foreach 循环中的承诺