2013-08-29 2 views
7

Я нашел similar question on StackOverflow, но решение, похоже, не работает для меня, если только я не ошибаюсь. У меня есть идентификационный номер, который я бы хотел добавить в строку в теге шаблона. Вот моя попытка:Как связать строку с номером внутри тега шаблона в Django

{% with "image-"|add:vid.the_id as image_id %} 
    {# custom template tag to generate image #} 
    {% image vid.teaser_thumbnail alt=vid.title id=image_id %} 
{% endwith %} 

Но image_id выходит как пустые.

Что я здесь делаю неправильно?

Мой желаемый результат image_id был бы чем-то вроде «image-8989723123».

+0

'add' фильтр пытается добавить целых, если это не удается, пытается объединить их. В вашем случае строка number & приведет к исключению. Вы можете определить свой собственный фильтр следующим образом: http://stackoverflow.com/a/23783666/781695 – Medorator

ответ

14

Попробуйте этот путь (добавлено with заявление с stringformat на вершине твоей):

{% with vid.the_id|stringformat:"s" as vid_id %} 
    {% with "image-"|add:vid_id as image_id %} 
     {# custom template tag to generate image #} 
     {% image vid.teaser_thumbnail alt=vid.title id=image_id %} 
    {% endwith %} 
{% endwith %} 
+0

К сожалению, это не работает. Возможно, потому что 'the_id' - это число? – shrewdbeans

+0

@shrewdbeans, пожалуйста, проверьте обновленный ответ (добавлен 'stringformat'). – alecxe

+2

Отлично, +1 для 'stringformat' – shrewdbeans

Смежные вопросы