I'm currently migrating all the static files references in my project to the new {% static %} tag that django 1.5 introduced, but I'm having a problem, in some places I use variables to get the content. With the new tag I can't, is there any way to solve this?
Current code:
<img src="{{ STATIC_URL }}/assets/flags/{{ request.LANGUAGE_CODE }}.gif" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
What it should be (this doesn't work):
<img src="{% static 'assets/flags/{{ request.LANGUAGE_CODE }}.gif' %}" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
@rounin, you can, at least, use
which will be loaded when you {% load static %}. It's just more natural then {% static '' %} :)
You should be able to concatenate strings with the
add
template filter:What you are trying to do doesn't work with the
static
template tag because it takes either a string or a variable only: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 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.
For what it's worth, I think this is the easiest way:
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.