Просмотр исходного кода

Fixes #4175: Fix potential exception when bulk editing objects from a filtered list

Jeremy Stretch 6 лет назад
Родитель
Сommit
1a8eea5aa9
3 измененных файлов с 4 добавлено и 7 удалено
  1. 1 0
      docs/release-notes/version-2.7.md
  2. 2 2
      netbox/templates/utilities/obj_list.html
  3. 1 5
      netbox/utilities/views.py

+ 1 - 0
docs/release-notes/version-2.7.md

@@ -9,6 +9,7 @@
 
 
 * [#2519](https://github.com/netbox-community/netbox/issues/2519) - Avoid race condition when provisioning "next available" IPs/prefixes via the API
 * [#2519](https://github.com/netbox-community/netbox/issues/2519) - Avoid race condition when provisioning "next available" IPs/prefixes via the API
 * [#4168](https://github.com/netbox-community/netbox/issues/4168) - Role is not required when creating a virtual machine
 * [#4168](https://github.com/netbox-community/netbox/issues/4168) - Role is not required when creating a virtual machine
+* [#4175](https://github.com/netbox-community/netbox/issues/4175) - Fix potential exception when bulk editing objects from a filtered list
 
 
 ---
 ---
 
 

+ 2 - 2
netbox/templates/utilities/obj_list.html

@@ -51,12 +51,12 @@
                 <div class="pull-left noprint">
                 <div class="pull-left noprint">
                     {% block bulk_buttons %}{% endblock %}
                     {% block bulk_buttons %}{% endblock %}
                     {% if bulk_edit_url and permissions.change %}
                     {% if bulk_edit_url and permissions.change %}
-                        <button type="submit" name="_edit" formaction="{% url bulk_edit_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-warning btn-sm">
+                        <button type="submit" name="_edit" formaction="{% url bulk_edit_url %}" class="btn btn-warning btn-sm">
                             <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Edit Selected
                             <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Edit Selected
                         </button>
                         </button>
                     {% endif %}
                     {% endif %}
                     {% if bulk_delete_url and permissions.delete %}
                     {% if bulk_delete_url and permissions.delete %}
-                        <button type="submit" name="_delete" formaction="{% url bulk_delete_url %}{% if request.GET %}?{{ request.GET.urlencode }}{% endif %}" class="btn btn-danger btn-sm">
+                        <button type="submit" name="_delete" formaction="{% url bulk_delete_url %}" class="btn btn-danger btn-sm">
                             <span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Delete Selected
                             <span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Delete Selected
                         </button>
                         </button>
                     {% endif %}
                     {% endif %}

+ 1 - 5
netbox/utilities/views.py

@@ -634,7 +634,7 @@ class BulkEditView(GetReturnURLMixin, View):
             post_data['pk'] = [obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs]
             post_data['pk'] = [obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs]
 
 
         if '_apply' in request.POST:
         if '_apply' in request.POST:
-            form = self.form(model, request.POST, initial=request.GET)
+            form = self.form(model, request.POST)
             if form.is_valid():
             if form.is_valid():
 
 
                 custom_fields = form.custom_fields if hasattr(form, 'custom_fields') else []
                 custom_fields = form.custom_fields if hasattr(form, 'custom_fields') else []
@@ -718,10 +718,6 @@ class BulkEditView(GetReturnURLMixin, View):
         else:
         else:
             # Pass the PK list as initial data to avoid binding the form
             # Pass the PK list as initial data to avoid binding the form
             initial_data = querydict_to_dict(post_data)
             initial_data = querydict_to_dict(post_data)
-
-            # Append any normal initial data (passed as GET parameters)
-            initial_data.update(request.GET)
-
             form = self.form(model, initial=initial_data)
             form = self.form(model, initial=initial_data)
 
 
         # Retrieve objects being edited
         # Retrieve objects being edited