diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index d609f0a18..be574204c 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -314,11 +314,20 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView): return data def _get_form_fields(self): - # Exclude any fields which use a HiddenInput widget - return { - name: field for name, field in self.model_form().fields.items() - if type(field.widget) is not HiddenInput - } + form = self.model_form() + required_fields = {} + optional_fields = {} + + # Return only visible fields, with required fields listed first + for field in form.visible_fields(): + if field.is_hidden: + continue + elif field.field.required: + required_fields[field.name] = field.field + else: + optional_fields[field.name] = field.field + + return {**required_fields, **optional_fields} def _save_object(self, import_form, model_form, request): diff --git a/netbox/templates/generic/bulk_import.html b/netbox/templates/generic/bulk_import.html index 484b7a36e..d4e61e675 100644 --- a/netbox/templates/generic/bulk_import.html +++ b/netbox/templates/generic/bulk_import.html @@ -103,87 +103,87 @@ Context: {% if fields %}
{% trans "Field" %} | -{% trans "Required" %} | -{% trans "Accessor" %} | -{% trans "Description" %} | -
---|---|---|---|
- {% if field.required %}{% endif %}{{ name }}{% if field.required %}{% endif %}
- |
- - {% if field.required %} - {% checkmark True true="Required" %} - {% else %} - {{ ''|placeholder }} - {% endif %} - | -
- {% if field.to_field_name %}
- {{ field.to_field_name }}
- {% else %}
- {{ ''|placeholder }}
- {% endif %}
- |
-
- {% if field.STATIC_CHOICES %}
-
-
-
- {% endif %}
- {% if field.help_text %}
- {{ field.help_text }}
-
-
- - {% elif field.label %} - {{ field.label }} - {% endif %} - {% if field|widget_type == 'dateinput' %} - {% trans "Format: YYYY-MM-DD" %} - {% elif field|widget_type == 'checkboxinput' %} - {% trans "Specify true or false" %} - {% endif %} - |
-