Flaskでエラーメッセージを表示するのに問題があります。 これは青写真に関連していると思われます。以前は、views.pyに見られるロジックはユーザーの青写真にありましたが、その後私はそれを主な青写真に移植しました。とにかく、その後、私はエラーメッセージを表示することができません。フォーム検証メッセージが表示されていません - Flask
私はあると私はトラブルを抱えていると思う特定の行:/ views.py メイン
self.email.errors.append( "このメールはすでに登録されている")
プロジェクト/ @main_blueprint.route('/', methods=['GET', 'POST'])
@main_blueprint.route('/<referrer>', methods=['GET', 'POST'])
def home(referrer=None):
form = RegisterForm(request.form)
# prepares response
resp = make_response(render_template('main/index.html', form=form))
if form.validate_on_submit():
do_stuff()
return resp
@main_blueprint.route('/', methods=['GET', 'POST'])
@main_blueprint.route('/<referrer>', methods=['GET', 'POST'])
def home(referrer=None):
form = RegisterForm(request.form)
# prepares response
resp = make_response(render_template('main/index.html', form=form))
if form.validate_on_submit():
do_stuff()
return resp
プロジェクト/メイン/ index.htmlを
<h1>Please Register</h1>
<br>
<form class="" role="form" method="post" action="">
{{ form.csrf_token }}
{{ form.email(placeholder="email") }}
<span class="error">
{% if form.email.errors %}
{% for error in form.email.errors %}
{{ error }}
{% endfor %}
{% endif %}
</span>
</p>
<button class="btn btn-success" type="submit">Register!</button>
<br><br>
<p>Already have an account? <a href="/login">Sign in</a>.</p>
</form>
プロジェクト/ユーザー/ forms.py
class RegisterForm(Form):
email = TextField(
'email',
validators=[DataRequired(), Email(message=None), Length(min=6, max=40)])
def validate(self):
print "validating"
initial_validation = super(RegisterForm, self).validate()
if not initial_validation:
print "not initial validation"
return False
user = User.query.filter_by(email=self.email.data).first()
print user
if user:
print self
print "error, email already registered"
self.email.errors.append("This Email is already registered")
return False
return True
デバッグしようとすると、これがあるから 'プリントユーザー' の値:それは動作するようになった0x7fa436807698
あなたのHTMLテンプレートを提供してください、あなたのRequest.Form [「何か」]のように見えるあなたは単にあなたの変数「フォーム」でことを目的に割り当てることを決めたと宣言されていません0x7fa436807698、あなたはノーあなたのオブジェクトから個々の要素を取り出すt – glls
さて、私は先に進んでhtmlテンプレートを更新しました – orangeandgrey