summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2018-10-01 18:11:53 +0500
committerTim Graham <timograham@gmail.com>2018-10-01 09:11:53 -0400
commite9defb3f6e60b626e9ec40ff5df1322fceb52601 (patch)
tree37c3c1dc6b7992312a18e446ce88b38cabd17941
parent92ccc3917058b1025b2d657ffdf3c21eb8009f7b (diff)
Simplified contrib.admin.utils.quote().
-rw-r--r--django/contrib/admin/utils.py11
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):