diff --git a/netbox/templates/account/preferences.html b/netbox/templates/account/preferences.html
index 93ca5dfc2..c5a93c162 100644
--- a/netbox/templates/account/preferences.html
+++ b/netbox/templates/account/preferences.html
@@ -10,15 +10,8 @@
{% csrf_token %}
{# Built-in preferences #}
- {% for group, fields in form.fieldsets %}
-
-
-
{{ group }}
-
- {% for name in fields %}
- {% render_field form|getfield:name %}
- {% endfor %}
-
+ {% for fieldset in form.fieldsets %}
+ {% render_fieldset form fieldset %}
{% endfor %}
{# Plugin preferences #}
diff --git a/netbox/templates/generic/bulk_edit.html b/netbox/templates/generic/bulk_edit.html
index ebb0fbc0e..90b68b25b 100644
--- a/netbox/templates/generic/bulk_edit.html
+++ b/netbox/templates/generic/bulk_edit.html
@@ -50,26 +50,7 @@ Context:
{# Render grouped fields according to declared fieldsets #}
{% for fieldset in form.fieldsets %}
-
-
-
- {% if fieldset.name %}
- {{ fieldset.name }}
- {% else %}
- {{ model|meta:"verbose_name"|bettertitle }}
- {% endif %}
-
-
- {% for name in fieldset.fields %}
- {% with field=form|getfield:name %}
- {% if field.name in form.nullable_fields %}
- {% render_field field bulk_nullable=True %}
- {% else %}
- {% render_field field %}
- {% endif %}
- {% endwith %}
- {% endfor %}
-
+ {% render_fieldset form fieldset %}
{% endfor %}
{# Render tag add/remove fields #}
diff --git a/netbox/templates/inc/filter_list.html b/netbox/templates/inc/filter_list.html
index 407add929..b8c93ca4c 100644
--- a/netbox/templates/inc/filter_list.html
+++ b/netbox/templates/inc/filter_list.html
@@ -11,16 +11,7 @@
{# List filters by group #}
{% for fieldset in filter_form.fieldsets %}
- {% if fieldset.name %}
-
- {{ fieldset.name }}
-
- {% endif %}
- {% for name in fieldset.fields %}
- {% with field=filter_form|get_item:name %}
- {% render_field field %}
- {% endwith %}
- {% endfor %}
+ {% render_fieldset filter_form fieldset %}
{% empty %}
{# List all non-customfield filters as declared in the form class #}
diff --git a/netbox/utilities/templatetags/form_helpers.py b/netbox/utilities/templatetags/form_helpers.py
index 5365e1c80..723c5206a 100644
--- a/netbox/utilities/templatetags/form_helpers.py
+++ b/netbox/utilities/templatetags/form_helpers.py
@@ -101,8 +101,12 @@ def render_fieldset(form, fieldset):
# A single form field
elif item in form.fields:
+ field = form[item]
+ # Annotate nullability for bulk editing
+ if field.name in getattr(form, 'nullable_fields', []):
+ field._nullable = True
rows.append(
- ('field', None, [form[item]])
+ ('field', None, [field])
)
return {
@@ -119,7 +123,7 @@ def render_field(field, bulk_nullable=False, label=None):
return {
'field': field,
'label': label or field.label,
- 'bulk_nullable': bulk_nullable,
+ 'bulk_nullable': bulk_nullable or getattr(field, '_nullable', False),
}