Use Python 3.6's ordered dictionaries
parent
a6fb5d0d36
commit
1b700e0b25
|
|
@ -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))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue