1

Is there a better way to set a 'has-error' class within my form fields? I am using Flask and WTForms. The below code works but is very repetitive. I tried to set a dynamic variable such as {% set field + 'error' = 'has-error' %} but found out you cannot set dynamic variables in jinja.

<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form">
    {% if login_user_form.email.errors %}
        {% set email_error = 'has-error' %}
    {% endif %}
    {% if login_user_form.password.errors %}
        {% set password_error = 'has-error' %}
    {% endif %}

    <div class="form-group {{ email_error }}">
        {{ login_user_form.email(class='form-control input-lg', placeholder='Email', required='true') }}
        {% if login_user_form.email.errors %}
            {% for error in login_user_form.email.errors %}
                <span class="help-block">{{ error }}</span>
            {% endfor %}
        {% endif %}
    </div> <!-- / Email -->

    <div class="form-group signin-password {{ password_error }}">
        {{ login_user_form.password(class='form-control input-lg', placeholder='Password', required='true') }}
        {% if login_user_form.password.errors %}
            {% for error in login_user_form.password.errors %}
                <span class="help-block">{{ error }}</span>
            {% endfor %}
        {% endif %}
    </div> <!-- / Password -->

    <div class="form-actions">
        <input type="submit" value="Log In" class="btn btn-primary btn-block btn-lg">
    </div> <!-- / .form-actions -->
</form>
Casey
  • 2,611
  • 6
  • 34
  • 60

0 Answers0