Is there a way to hide the csrf label while looping through form using Flask and Flask-WTForms?
flask, jinja2, python
Solution
If you want a more general solution that works for all hidden fields instead of just the CSRF token:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
{{ field.label }}
{{ field }}
{% endfor %}
`form.hidden_tag()` is supplied by Flask-WTF.
Problem
I have very simple contact form and I would like to hide the label somehow so that it doesn't show `Csrf Token`. I am using Flask and Flask-WTForms and am rendering the form like this: ``` {% for field in form %} {{ field.label }} {{ field }} {% endfor %} ``` So basically this shows my inputs correctly and the csrf oen is hidden but the label isn't hidden? Should I get over it and implicitly say `form.field_name` instead of looping through the form or is there a way to handle this "corner case". I was thinking about doing a logical check in either the for loop declaration or the label declaration but so far I haven't found anything in the documentation that has worked. Thanks EDIT: I have "fixed" the problem by doing this but it feels kinda dirty and hacky which I don't like I am still open to a better solution: ``` {% if not loop.first %} {{ field.label }} {% endif %} ```