Use Python 3.6's ordered dictionaries

master
blag 2020-05-24 15:54:34 -07:00
parent a6fb5d0d36
commit 1b700e0b25
No known key found for this signature in database
GPG Key ID: 30870D32F59C5F40
1 changed files with 4 additions and 4 deletions

View File

@ -313,17 +313,17 @@ class SortableAdmin(SortableAdminBase, ModelAdmin):
with transaction.atomic(): with transaction.atomic():
objects_dict = {str(obj.pk): obj for obj in qs} objects_dict = {str(obj.pk): obj for obj in qs}
objects_list = list(objects_dict.keys())
order_field_name = klass._meta.ordering[0] order_field_name = klass._meta.ordering[0]
if order_field_name.startswith('-'): if order_field_name.startswith('-'):
order_field_name = order_field_name[1:] order_field_name = order_field_name[1:]
step = -1 step = -1
start_object = max(objects_dict.values(), start_object = objects_dict[objects_list[-1]]
key=lambda x: getattr(x, order_field_name))
else: else:
step = 1 step = 1
start_object = min(objects_dict.values(), start_object = objects_dict[objects_list[0]]
key=lambda x: getattr(x, order_field_name))
start_index = getattr(start_object, order_field_name, start_index = getattr(start_object, order_field_name,
len(indexes)) len(indexes))