<fieldset>
    {{ form.hidden_tag() }}
    {% for field in form %}
    <div class="pure-control-group">
        {% if field.id != 'csrf_token' %}
            {{ field.label(class_='label-control text-capitalize') }}
            {% if field.id != 'confirm' and field.type != 'radio' %}
                {{ field(class_='form-control') }}
            {% elif field.id == 'confirm' %}
                <span style="padding:25pt;">
                    {{ field(class_='form-control') }}
                </span>
            {% elif field.type == 'radio' %}
                {{ field(class_='radio-inline') }}
            {% endif %}
        {% endif %}
    </div>
    {% endfor %}
    <button type="submit" style="margin:10pt auto;" class="btn btn-primary text-capitalize">{{ submit }}</button>
</fieldset>