diff options
| author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2018-10-01 18:11:53 +0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-10-01 09:11:53 -0400 |
| commit | e9defb3f6e60b626e9ec40ff5df1322fceb52601 (patch) | |
| tree | 37c3c1dc6b7992312a18e446ce88b38cabd17941 | |
| parent | 92ccc3917058b1025b2d657ffdf3c21eb8009f7b (diff) | |
Simplified contrib.admin.utils.quote().
| -rw-r--r-- | django/contrib/admin/utils.py | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index 1db552bcd8..1590b6f65d 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -13,6 +13,8 @@ from django.utils.html import format_html from django.utils.text import capfirst from django.utils.translation import ngettext, override as translation_override +QUOTE_MAP = {i: '_%02X' % i for i in b'":/_#?;@&=+$,"[]<>%\n\\'} + class FieldIsAForeignKeyColumnName(Exception): """A field is a foreign key attname, i.e. <FK>_id.""" @@ -64,14 +66,7 @@ def quote(s): Similar to urllib.parse.quote(), except that the quoting is slightly different so that it doesn't get automatically unquoted by the Web browser. """ - if not isinstance(s, str): - return s - res = list(s) - for i in range(len(res)): - c = res[i] - if c in """:/_#?;@&=+$,"[]<>%\n\\""": - res[i] = '_%02X' % ord(c) - return ''.join(res) + return s.translate(QUOTE_MAP) if isinstance(s, str) else s def unquote(s): |
