У меня есть форма 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, он работает нормально!Есть идеи, что не так?
ОБНОВЛЕНИЕ
Только что решено!Похоже, вам нужно указать выборы в виде пустого списка или списка с формой [(a, b)] (список кортежей), чтобы он работал.Я изменил код, чтобы он был похож на choices = [(x, x) для x в pytz.common_timezones] , и это решает проблему.