#36758: Template parser errors when using whitespace around pipe for certain
filters
-------------------------------------+-------------------------------------
Reporter: Stephen Skett | Owner: (none)
Type: Uncategorized | Status: new
Component: Template system | Version: 4.2
Severity: Normal | Resolution:
Keywords: template, filter, | Triage Stage:
pipe, whitespace, divisibleby, | Unreviewed
center |
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Stephen Skett):
* keywords: template, filter, divisibleby, pipe, whitespace => template,
filter, pipe, whitespace, divisibleby, center
* summary: Template parser =>
Template parser errors when using whitespace around pipe for certain
filters
Old description:
> Based on discussion from previous support ticket #4746, I believe it
> should now be possible to add whitespace around the pipe-character when
> using a filter in a Django-template, if that is stylistically preferred.
>
> However, I experience 'TemplateSyntaxError' when I use whitespace around
> the '|', specifically the built-in `divisibleby` filter - as in the
> following example:
> {{{
> {% for obj in some_collection %}
> {% if forloop.counter0 | divisibleby:num_items_per_row %}
> {% comment %}Some HTML here...{% endcomment %}
> {% endif %}
> {% endfor %}
> }}}
>
> I don't seem to encounter this error for any of the other built-in
> template-filters which I commonly use (e.g. `date`, `floatformat`, etc.),
> or with custom filters in my tag-libraries. Is this a bug with
> `divisibleby`, or am I missing something?
New description:
Based on discussion from previous support ticket #4746, I believe it
should now be possible to add whitespace around the pipe-character when
using a filter in a Django-template, if that is stylistically preferred.
However, I experience 'TemplateSyntaxError' when I use whitespace around
the '|', specifically the built-in `divisibleby` and `center` filters - as
in the following examples.
With `divisibleby` in an `if`-tag (error: "Could not parse the remainder:
'|' from '|'"):
{{{
{% for obj in some_collection %}
{% if forloop.counter0 | divisibleby:num_items_per_row %}
{% comment %}Some HTML here...{% endcomment %}
{% endif %}
{% endfor %}
}}}
And, with `center` in a `with`-tag (error: "'with' expected at least one
variable assignment"):
{{{
{% with '' | center:loop_limit_val as loop_range %}
{% for _ in loop_range %}
{% comment %}Some HTML here...{% endcomment %}
{% endfor %}
{% endwith %}
}}}
I don't seem to encounter this error for most of the other built-in
template-filters which I commonly use (e.g. `date`, `floatformat`, etc.),
or with custom filters in my tag-libraries. Is this a bug with
`divisibleby` / `center`, or am I missing something?
--
--
Ticket URL: <
https://code.djangoproject.com/ticket/36758#comment:1>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.