diff options
| author | Baptiste Mispelon <bmispelon@gmail.com> | 2019-11-24 23:09:07 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-11-26 08:48:10 +0100 |
| commit | 52936efacec4df05df2d9872c09c3332335bf21b (patch) | |
| tree | 8fbd85fb80b463ece3125f4edecb1a032e3678d4 /django | |
| parent | 5573a54d409bb98b5c5acdb308310bed02d392c2 (diff) | |
Fixed #31031 -- Fixed data loss in admin changelist view when formset's prefix contains regex special chars.
Regression in b18650a2634890aa758abae2f33875daa13a9ba3.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 137e6faa0f..85896bed7e 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1631,7 +1631,9 @@ class ModelAdmin(BaseModelAdmin): def _get_edited_object_pks(self, request, prefix): """Return POST data values of list_editable primary keys.""" - pk_pattern = re.compile(r'{}-\d+-{}$'.format(prefix, self.model._meta.pk.name)) + pk_pattern = re.compile( + r'{}-\d+-{}$'.format(re.escape(prefix), self.model._meta.pk.name) + ) return [value for key, value in request.POST.items() if pk_pattern.match(key)] def _get_list_editable_queryset(self, request, prefix): |
