How to Apply Multiple Filters on a Django Template Variable?

For me this works:

{{ game.description|safe }}

But this fails:

{{ game.description|safe|slice:"65" }}

Is there a way to apply two or more filters on a variable in Django templates?

3

4 Answers

Although it's quite past when the OP posted the question, but for other people that may need the info, this seems to work well for me:

You can rewrite

{{ game.description|safe|slice:"65" }}

as

{% with description=game.description|safe %}
{{description|slice:"65"}}
{% endwith %}
1

Is description an array or a string?

If it is a string, you might want to try truncatewords (or truncatewords_html if the description can contain HTML),

{{ game.description|safe|truncatewords:65 }}

Reference: Built-in filter reference, truncatewords.

(I'm new to Django so my apologies if slice works on strings.)

change

{{ game.description|safe|slice:"65" }}

to

{{ game.description|safe|slice:":65" }}

you are missing the colon

This may work:

{% filter force_escape|lower %}
    This text will be HTML-escaped, and will appear in all lowercase.
{% endfilter %}

Reference: Built-in tag reference, filter.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Alexander Ross

Alexander Ross

Gaming, Esports & Interactive Media Writer

Alexander Ross has covered the video game industry for a decade, writing deep dives on game design, esports tournaments, VR developments, and gaming culture.

Share this article
Twitter Facebook Pinterest