Opened 6 days ago
Last modified 29 hours ago
#36049 assigned Bug
The `upper` template filter should set `is_safe=True` — at Version 1
Reported by: | Lily Foote | Owned by: | |
---|---|---|---|
Component: | Template system | Version: | 5.1 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I noticed this inconsistency between upper
and lower
where upper
has is_safe=False
but lower
has is_safe=True
. I think lower
is correct and upper
is incorrect.
This has been the case ever since is_safe
was introduced in https://github.com/django/django/commit/356662cf74c99fac90afb0f5e6aac8d2d573e62a.
from django.template import engines from django.utils.safestring import mark_safe def test_is_safe(): template = """ {{ html|upper }} {{ html|lower }} """ template = engines["django"].from_string(template) html = mark_safe("<p>Hello World!</p>") assert template.render({"html": html}) == """ <P>HELLO WORLD!</P> <p>hello world!</p> """ E AssertionError: assert '\n<P>H... world!</p>\n' == '\n<p>HELLO W... world!</p>\n' E E E - <P>HELLO WORLD!</P> E + <P>HELLO WORLD!</P> E <p>hello world!</p>
Note:
See TracTickets
for help on using tickets.