Return an HTTP 400 if the queryset size has changed since the page was loaded

master
blag 2020-05-24 15:58:44 -07:00
parent 1b700e0b25
commit 899f92f53a
No known key found for this signature in database
GPG Key ID: 30870D32F59C5F40
1 changed files with 9 additions and 0 deletions

View File

@ -314,6 +314,15 @@ class SortableAdmin(SortableAdminBase, ModelAdmin):
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()) objects_list = list(objects_dict.keys())
if len(indexes) != len(objects_dict):
return HttpResponseBadRequest(
json.dumps({
'objects_sorted': False,
'reason': _("An object has been added or removed "
"since the last load. Please refresh "
"the page and try reordering again."),
}, ensure_ascii=False),
content_type='application/json')
order_field_name = klass._meta.ordering[0] order_field_name = klass._meta.ordering[0]
if order_field_name.startswith('-'): if order_field_name.startswith('-'):