仅当表单中存在错误时,我才想将额外的 is-invalid CSS 类应用于 wtforms 元素。
我已经使用以下代码来实现此目的并且它有效:
{% if form.email.errors %}
{{ form.email(placeholder="Email", class="form-control is-invalid") }}
{% else %}
{{ form.email(placeholder="Email", class="form-control") }}
{% endif %}
但是,它不是很简洁,我不得不重复整个 form.email 元素。如果逻辑更复杂,这可能会变得非常混乱。
必须有一种更清晰的方法来仅将类值包装在逻辑中。
您可以将字符串连接运算符“~”与内联 if 语句一起使用,例如
{{ form.email(placeholder="Email", class="form-control" ~ " is-invalid" if form.email.errors else "") }}