From eb5a9e0a8a921df7cbe8c8e2d900101e5e5f20ef Mon Sep 17 00:00:00 2001 From: Anton Shevchenko Date: Wed, 8 Mar 2017 23:28:40 -0500 Subject: [PATCH] Avoid unnecessary db queries: perform the update iff the order field has changed. --- adminsortable/admin.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/adminsortable/admin.py b/adminsortable/admin.py index ee92501..2991f5c 100644 --- a/adminsortable/admin.py +++ b/adminsortable/admin.py @@ -297,9 +297,11 @@ class SortableAdmin(SortableAdminBase, ModelAdmin): for index in indexes: obj = objects_dict.get(index) - setattr(obj, order_field_name, start_index) - # only update the object's order field - obj.save(update_fields=(order_field_name,)) + # perform the update iff the order field has changed + if getattr(obj, order_field_name) != start_index: + setattr(obj, order_field_name, start_index) + # only update the object's order field + obj.save(update_fields=(order_field_name,)) start_index += step response = {'objects_sorted': True} except (KeyError, IndexError, klass.DoesNotExist,