2013-08-29 10 views
7

Znalazłem similar question on StackOverflow, ale rozwiązanie nie działa dla mnie, chyba że robię to źle. Mam numer identyfikacyjny, który chciałbym dodać do ciągu znaków w tagu szablonu. Oto moja próba:Jak połączyć ciąg na numer wewnątrz znacznika szablonu w 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 %} 

Ale image_id wychodzi jako pusty.

Co ja tu robię źle?

Moje pożądane wyjście z image_id byłoby coś w stylu "image-8989723123".

+0

'add' filtr próbuje dodać jako liczby całkowite, jeśli nie próbuje je złączyć. W twoim przypadku liczba i ciąg spowoduje wyjątek. Można zdefiniować własny filtr w następujący sposób: http://stackoverflow.com/a/23783666/781695 – Medorator

Odpowiedz

14

Spróbuj w ten sposób (dodane with oświadczenie z stringformat na górze twój):

{% 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

Niestety to nie działa. Być może dlatego, że 'the_id' jest liczbą? – shrewdbeans

+0

@shrewdbeans Sprawdź zaktualizowaną odpowiedź (dodano 'stringformat'). – alecxe

+2

Doskonały, +1 dla 'stringformat' – shrewdbeans

Powiązane problemy