2016-11-20 5 views
0

там. я определил класс под названием LoginForm:Как настроить поля в форме фляжки-wtf

class LoginForm(FlaskForm): 
    email = StringField('Email', validators=[DataRequired(), Length(5, 64), Email()]) 
    password = PasswordField('Password', validators=[DataRequired()]) 
    remember_me = BooleanField('Remember me') 
    submit = SubmitField('Log In') 

Тогда я вынести его в шаблонах login.html:

{% extends "base.html" %} 
{% import "bootstrap/wtf.html" as wtf %} 
{{ wtf.quick_form(form) }} 

Это выглядит как выше: enter image description here

И я думаю, что это немного некрасиво. Таким образом, я сделать поля в обычном порядке:

<form action="" method="POST" role="form" class="form"> 
    {{ form.hidden_tag() }} {{ wtf.form_errors(form, hiddens="only") }} 
    <div class="form-group required"> 
     <label class="control-label" for="email">Email</label> 
     {{ form.email(class="form-control",id="email",required="required",type="text",value="",placeholder="Enter email") }} 
    </div> 
    <div class="form-group required"> 
     <label class="control-label" for="password">Password</label> 
     {{ form.password(class="form-control",id="password",required="required",type="password",value="",placeholder="Enter email") }} 
    </div> 
    <div class="checkbox"> 
     <label> 
      <input id="remember_me" name="remember_me" type="checkbox" value="y"> Remember me 
     </label> 
    </div> 
    {{ form.submit(class="btn btn-success btn-block") }} 
    <a href="{{ url_for('auth.register') }}" class="btn btn-danger btn-block" role="button">Register</a> 
</form> 

enter image description here

Он согласен со мной. Но я столкнулся с проблемой: когда я нажимаю зеленую кнопку входа, она не проверяет данные (например, формат адреса электронной почты). Как мне решить эту проблему?

+0

Вы уверены, что не подтвердили или не обнаружили ошибок? –

+0

@BurhanKhalid Спасибо, я это понял. Это просто не отображает ошибки. –

ответ

1

Сначала я думал, что это не проверяет. Спасибо @BurhanKhalid за то, что напомнил мне. Это просто не показывает ошибок. Я изменил код, и он работает.

{% if form.email.errors %} 
    <div class="form-group required has-error"> 
     {{ form.email(class="form-control",id="email",required='required',type="text",value="",placeholder="Enter email") }} 
     {% for error in form.email.errors %} 
     <p class="help-block">{{ error }}</p> 
     {% endfor %} 
{% else %} 
    <div class="form-group required"> 
    {{ form.email(class="form-control",id="email",required='required',type="text",value="",placeholder="Enter email") }} 
{% endif %} 
    </div>