Pertanyaan Django 1.5 - Cara menggunakan variabel di dalam tag statis


Saya saat ini memigrasikan semua referensi file statis dalam proyek saya ke tag {% static%} baru yang django 1,5 diperkenalkan, tapi saya mengalami masalah, di beberapa tempat saya menggunakan variabel untuk mendapatkan konten. Dengan tag baru saya tidak bisa, adakah cara untuk menyelesaikan ini?

Kode saat ini:

<img src="{{ STATIC_URL }}/assets/flags/{{ request.LANGUAGE_CODE }}.gif" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />

Apa yang seharusnya (ini tidak berhasil):

<img src="{% static 'assets/flags/{{ request.LANGUAGE_CODE }}.gif' %}" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />

75
2018-05-20 18:24


asal


Jawaban:


Anda harus dapat menggabungkan string dengan add filter template:

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

Apa yang Anda coba lakukan tidak bekerja dengan static tag template karena hanya string atau variabel saja:

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

114
2018-05-20 18:45



cara yang lebih bersih adalah dengan menyetel {% static%} sebagai variabel dari awal html sehingga kita dapat menggunakannya dengan cara apa pun yang kita inginkan.

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

18
2018-03-03 03:37



Saya mendapatkan ini untuk bekerja dengan menggunakan string kosong untuk jalur statis dan kemudian menggunakan variabel saya di bagian mereka sendiri, seperti ini:

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

10
2018-03-13 07:47



@rounin, setidaknya Anda bisa menggunakannya

{% get_static_prefix %} 

yang akan dimuat ketika Anda {% memuat statis%}. Ini lebih alami maka {% static ''%} :)


10
2018-05-18 18:21



Untuk apa nilainya, saya pikir ini adalah cara termudah:

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

Ini dan pertanyaan lama dan saya tidak yakin apakah metode ini bisa dilakukan saat itu, Tapi sekarang, di Django 2.0 ini tampaknya berfungsi dengan baik untuk saya.


1
2018-03-28 04:45