LINUX.ORG.RU

вставить переменную как часть блочного тега

 


0

1

Есть тег {% static «какое-то имя файла» %}. Надо в «какое-то имя файла» вставить переменную, примерно так: «111 {{ abc }} 222». Как это сделать? Если так как я только что написал, {{ abc }} выводится как строка, не резолвясь.

★★★★★
Ответ на: комментарий от zz

Потому что каталог, в котором находится файл, достается динамически во вью и кладется в переменную.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от zz

А зачем staticfiles тогда?

Этот файл лежит в static files dir.

можно просто брать {{STATIC_URL}}

Неа. Я хочу запилить CacheStaticDir или как там его, который добавляет md5 к файлам. А он работает только с теми, которые подключаются тегом static.

готовить переменную во вьюшке

Вариант. А так как в моем вопросе нельзя?

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Вариант. А так как в моем вопросе нельзя?

Честно говоря я не знаю. Если он съест фильтр для переменной в такой конструкции, то наверное можно написать фильтр который будет с текущим контекстом интерполировать такие строки, но как то слишком костыльно будет.

zz ★★★★
()

Напиши свой вариант тега static, делов-то. Скопипасти код джанговского тега, поменяй там пару строчек и все.

provaton ★★★★★
()
Ответ на: комментарий от provaton

Копипастить нехорошо. Ведь если в джанге проапдейтят этот тег, у меня изменений не будет. Пока остановлюсь на варианте создания всей переменной пути еще во вью.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Определение этого тега занимает целых две строчки, и сводится к вызову функции staticfiles_storage.url. Конечно, если поменяют API тогда придется апдейтить (аж одну строчку, представить даже сложно), но все равно в каждом релизе что-то в АПИ ломают, так что бояться этого глупо. После того, как они поменяли синтаксис тега {% url %}, это вообще смешно.

provaton ★★★★★
()
Ответ на: комментарий от provaton

Ну так то они его меняли два релиза, было время подготовиться.

zz ★★★★
()

Сделал во вью, пока так. Если будет слишком неудобно или понадобиться использовать подобное во многих местах, запилю тег.

vurdalak ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.