Using Django 1.7.5, there is a problem with commas in string literals in
the cycle tag, e.g. with
{{{
{% cycle "Hello, how are you?" "Fine!" %}
}}}
Please consider this example in the management shell (newlines added for
clarity):
{{{
#!python
>>> from django.template import *
>>> t = Template('''{% cycle "Hello, how are you?" "Fine!" %}''')
/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py:290: RemovedInDjango18Warning: 'The
`cycle` template tag is changing to escape its arguments; the non-
autoescaping version is deprecated. Load it from the `future` tag library
to start using the new behavior.
compiled_result = compile_func(self, token)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py", line 132, in __init__
self.nodelist = compile_string(template_string, origin)
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py", line 162, in compile_string
return parser.parse()
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py", line 290, in parse
compiled_result = compile_func(self, token)
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/defaulttags.py", line 648, in cycle
values = [parser.compile_filter(arg) for arg in args[1:]]
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py", line 372, in compile_filter
return FilterExpression(token, self)
File "/home/carsten/.virtualenvs/Ze/local/lib/python2.7/site-
packages/django/template/base.py", line 588, in __init__
"from '%s'" % (token[upto:], token))
TemplateSyntaxError: Could not parse the remainder: 'Hello"' from
'""Hello"'
}}}
(Probably not relevant, but fyi, this happens with or without `{% load
cycle from future %}`.)
--
Ticket URL: <https://code.djangoproject.com/ticket/24451>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* status: new => assigned
* needs_better_patch: => 0
* needs_tests: => 0
* owner: nobody => timgraham
* needs_docs: => 0
* stage: Unreviewed => Accepted
Comment:
I confirmed the suspection on the mailing list that this is caused by
those particular arguments being parsed using the legacy syntax. I'll use
this as an excuse to deprecate that syntax.
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:1>
* has_patch: 0 => 1
Comment:
[https://github.com/django/django/pull/4249 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:2>
Comment (by collinanderson):
I agree deprecation makes sense.
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:3>
* stage: Accepted => Ready for checkin
Comment:
LGTM
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:4>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"c36b60836be9e78ab877566cc43dc03960ce944d"]:
{{{
#!CommitTicketReference repository=""
revision="c36b60836be9e78ab877566cc43dc03960ce944d"
Fixed #24451 -- Deprecated comma-separated {% cycle %} syntax.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:5>
Comment (by Tim Graham <timograham@…>):
In [changeset:"47201371d2805391f4dec3528cdc05f083814165" 47201371]:
{{{
#!CommitTicketReference repository=""
revision="47201371d2805391f4dec3528cdc05f083814165"
Refs #24451 -- Corrected Django version for {% cycle %} deprecation.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:6>
Comment (by Tim Graham <timograham@…>):
In [changeset:"27b2321793c62fb2cbb00fd2830c9387a187a84f" 27b23217]:
{{{
#!CommitTicketReference repository=""
revision="27b2321793c62fb2cbb00fd2830c9387a187a84f"
Refs #24451 -- Removed comma-separated {% cycle %} syntax per deprecation
timeline.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/24451#comment:7>