[Django]-Django 1.5 – How to use variables inside static tag

185πŸ‘

βœ…

You should be able to concatenate strings with the add template filter:

{% with 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' as image_static %}
  {% static image_static %}
{% endwith %}

What you are trying to do doesn’t work with the static template tag because it takes either a string or a variable only:

{% static "myapp/css/base.css" %}
{% static variable_with_path %}
{% static "myapp/css/base.css" as admin_base_css %}
{% static variable_with_path as varname %}

41πŸ‘

For what it’s worth, I think this is the easiest way:

<img src="{% static 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' %}" ... >

This is and old question and I’m not sure if this method could be done back then, But now, in Django 2.0 this seems to work fine for me.

31πŸ‘

a cleaner way is to set the {% static %} as a variable from the beginning of the html so we can use it in any way we want.

{% load static %}
{% static "" as baseUrl %}
<img src="{{ baseUrl }}/img/{{p.id}}"></img>

24πŸ‘

I got this to work by using an empty string for the static path and then using my variables in their own section, like this:

<a href= "{% static "" %}{{obj.a}}/{{obj.b}}/{{obj.c}}.gz" >Name</a>

15πŸ‘

@rounin, you can, at least, use

{% get_static_prefix %} 

which will be loaded when you {% load static %}. It’s just more natural then {% static ” %} πŸ™‚

0πŸ‘

Just put the variables outside of the tag:

src="{% static 'directory/' %}{{filename}}.{{fileextension}}"

Result: "directory/filename.fileextension"

Example Result: "directory/bird.jpg"

Leave a comment