私はスタッフが自分の名前を選択するための選択フィールドを作成しました。 ユーザーが自分の名前を選択せず、代わりにドロップダウンボックスを "---"にしたときの目標です。このシナリオでは、ValidationErrorでメッセージを出力します。現時点で私はこれをテストすると何も印刷されません。ここでWTFormsはSelectFieldボックスを検証できないようです。
は私forms.pyファイルです:
from flask_wtf import Form
from wtforms import StringField, BooleanField, SelectField
from wtforms.validators import DataRequired, Required, ValidationError
class StaffNames(Form):
staff = SelectField(
'staff',
choices=[("", "---"), ('1', 'John Jones'), ('2', 'Chris Hughes'), ('3', 'Lyn Fox')],
)
def validate_staff(form, field):
if field.data is "---":
raise ValidationError("Sorry, you havn't chosen a staff name")
ここに私のview.pyファイルされる:
from flask import render_template, flash, redirect
from app import app
from .forms import StaffNames
@app.route('/')
@app.route('/index', methods=['GET', 'POST'])
def index():
form = StaffNames()
if form.validate_on_submit():
return redirect('/results')
return render_template('index.html',
title='RA Index Search',
form=form)
ここでは、このフォームに関連する私のindex.htmlです:
<!-- extend base layout -->
{% extends "base.html" %}
{% block content %}
<center>
<h1>Search</h1>
<form action="" method="post" name="login">
<p>{{ form.staff }} Select your name</p>
<p><input type="submit" value="Search"></p>
</form>
{% endblock %}
誰かが私が間違っていることを見ることができますか、私の脳を溶かすことのない代替方法を提案することができます!笑 おかげ