gpt4 book ai didi

python - 当 SelectField 添加到模板时,Flask WTF 表单终止

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:07 24 4
gpt4 key购买 nike

我的 flask 中有一个 wtf 形式:


class CustomerForm(FlaskForm):
customer_id = StringField('System ID')
crm_id = IntegerField('ID', validators=[DataRequired()])
customer_name = StringField('Customer Name', validators=[DataRequired()])
alias = StringField('Alias', validators=[DataRequired()])
phone = StringField('Phone')
address = StringField('Address')
default_timezone = SelectField('Default Time Zone', validators=[DataRequired()],
choices=pytz.common_timezones
)

@customers_page.route('/customer/<customer_id>', methods=["GET"])
@customers_page.route('/customer/', defaults={'customer_id': '-1'}, methods=["GET"])
@flask_login.login_required
def customer_page(customer_id):
form = CustomerForm()

return render_template('customer.html',
form=form
)

模板看起来像:

{% extends "main.html" %}

{% block content %}

<div class="app-content">
<h1>View/Edit/Delete Customer {{ customer.customer_id }}</h1>
<form action="{{ url_for('customers_page.customer_save') }}" method="post">
{{ form.crm_id(readonly=true) }}
{{ form.customer_name }}
{{ form.alias }}
{{ form.phone }}
{{ form.address }}
{{ form.default_timezone }}

{{ form.csrf_token }}
</form>
</div>

{% endblock %}

当我将 SelectField form.default_timezone 添加到模板时,浏览页面会终止应用程序,且不会出现任何错误、异常或调试消息。如果我省略 SelectField 它工作正常!知道出了什么问题吗?

更新

刚刚解决了!似乎您需要将 choices 指定为空列表或 [(a, b)] (元组列表)形式的列表才能使其工作。我将代码更改为 choices=[(x, x) for x in pytz.common_timezones] ,它解决了问题。

最佳答案

刚刚解决了!似乎您需要将 choices 指定为空列表或 [(a, b)] (元组列表)形式的列表才能使其工作。我将代码更改为类似

default_timezone = SelectField('Default Time Zone', validators=[DataRequired()], 
choices=[(x, x) for x in pytz.common_timezones])

它解决了问题。

关于python - 当 SelectField 添加到模板时,Flask WTF 表单终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com