Opened 8 years ago
Closed 8 years ago
#26830 closed Bug (fixed)
Issue with combination of 'with', 'ifchanged' and 'cycle' templatetags in templates.
Reported by: | Alexander Schrijver | Owned by: | Sergei Maertens |
---|---|---|---|
Component: | Template system | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I ran into the issue where I do a named cycle in a ifchanged templatetag and depending if the given value changes cycle, or do not cycle. This works, however, if I put this in a 'with' statement, then it stops working.
I've created two unit tests to show this behavior.
https://github.com/flupzor/django/commit/4833c4ea5d0cbfd1e7d1689e1887772856f5aba2
This is the output of the tests.
$ ./runtests.py template_tests.syntax_tests.test_cycle.CycleTagTests Testing against Django installed in '/home/alex/django-repo/django' with up to 8 processes Creating test database for alias 'default'... Creating test database for alias 'other'... .......................F. ====================================================================== FAIL: test_cycle29 (template_tests.syntax_tests.test_cycle.CycleTagTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/alex/django-repo/django/test/utils.py", line 209, in inner return func(*args, **kwargs) File "/home/alex/django-repo/tests/template_tests/utils.py", line 61, in inner func(self) File "/home/alex/django-repo/tests/template_tests/syntax_tests/test_cycle.py", line 144, in test_cycle29 self.assertEqual(output, 'bcabcabcccaa') AssertionError: u'bcabcabcaaaa' != 'bcabcabcccaa' ---------------------------------------------------------------------- Ran 25 tests in 0.028s FAILED (failures=1) Destroying test database for alias 'default'... Destroying test database for alias 'other'...
Change History (7)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 8 years ago
Has patch: | set |
---|---|
Triage Stage: | Unreviewed → Accepted |
Confirmed bug, I could reproduce with a simple project and the tests cover it well.
The patch looks allright to me, although I'm not sure that the set_upward
method should exist on the Context
class, but I'll leave that to other people to decide.
comment:4 by , 8 years ago
Patch needs improvement: | set |
---|
Left some comments for improvement on the PR.
comment:5 by , 8 years ago
Patch needs improvement: | unset |
---|
I've added a PR to github with a fix for this issue. https://github.com/django/django/pull/6865