{{ field.label(
class_="form-label col-sm-2 col-form-label" + (' required-label' if field.flags.required else ''),
**({'title': "This is a required field"} if field.flags.required else {})
) }}
{% if ajax_lookup_url and field.loader is defined %}
{% set extra = {"data_url": ajax_lookup_url} %}
{% else %}
{% set extra = {} %}
{% endif %}
{% if field.errors %}
{{ field(class_="form-control is-invalid", **extra) }}
{% else %}
{{ field(**extra) }}
{% endif %}
{% for error in field.errors %}
{% endmacro %}
{% macro render_form_fields(form, form_opts=None, ajax_lookup_url="") %}
{% if form.hidden_tag is defined %}
{{ form.hidden_tag() }}
{% else %}
{% for f in form if f.widget.input_type == 'hidden' %}
{{ f }}
{% endfor %}
{% endif %}
{% for f in form if f.widget.input_type != 'hidden' %}
{{ render_field(f, kwargs, ajax_lookup_url=ajax_lookup_url) }}
{% endfor %}
{% endmacro %}