SelectField "Недействительный выбор" - PullRequest
0 голосов
/ 22 января 2019

Невозможно создать новую "публикацию" (исследование) с помощью SelectField с формами колб.

Я пытаюсь установить приложение "Study" для своего сайта. В «новом исследовании» tempalte я получаю ошибку «Неправильный выбор» от SelectField. Я настроил кортежи: (идентификатор, метка) с принуждением = int.

Я пробовал также такие кортежи, как: («Открытие», «Открытие») без принуждения = int. В обоих случаях я получаю одинаковую ошибку

# forms.py:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, TextAreaField, SelectField
from wtforms.validators import DataRequired


choices = [(1, 'Opening'), (2, 'Middlegame'), (3, 'Endgame'), (4, 'Match')]

class StudyForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    content = TextAreaField('Content', validators=[DataRequired()])
    category = SelectField('Category', choices = choices, validators = [DataRequired()], coerce=int)
    board = StringField('Embeded board', validators=[DataRequired()])

    submit = SubmitField('Add game')



# models.py
class Study(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(100), nullable = False)
    content = db.Column(db.Text, nullable = False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)
    board = db.Column(db.String(100), nullable = False)
    category = db.Column(db.Integer, nullable = False) #tried also with db.String(100) now I'm not sure which i should choose



# routes.py
@studies.route("/study/new", methods=['GET', 'POST'])
@login_required
def new_study():
    form = StudyForm()
    if form.validate_on_submit():

        study = Study(title=form.title.data, content=form.content.data, user_id=current_user, board=form.board.data, category=form.category.data)
        db.session.add(study)
        db.session.commit()
        flash('Your study has been created!', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_study.html', title='New Study',
                           form=form, legend='New Study')


#create_study.html
{{ form.category.label(class="form-control-label") }}
<select class="custom-select custom-select-lg mb-3" id=category name=category>

<option value="1">Opening</option>
<option value="2" selected>Middlegame</option>
<option value="3">Endgame</option>
<option value="4">Match</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...