2013-08-29 12 views
7

Ho trovato uno similar question on StackOverflow, ma la soluzione non sembra funzionare per me, a meno che non stia sbagliando. Ho un numero ID, che vorrei aggiungere a una stringa in un tag modello. Ecco il mio tentativo:Come concatenare una stringa a un numero all'interno di un tag di modello in 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 %} 

Ma image_id sta uscendo come vuoto.

Cosa sto facendo di sbagliato qui?

La mia uscita desiderata di image_id sarebbe qualcosa come "image-8989723123".

+0

'add' filtro cerca di aggiungere come numeri interi, se fallisce tenta di concatenare le loro. Nel tuo caso, un numero e una stringa causeranno un'eccezione. Potresti definire il tuo filtro in questo modo: http://stackoverflow.com/a/23783666/781695 – Medorator

risposta

14

provare in questo modo (aggiunti with dichiarazione con stringformat sulla parte superiore del vostro):

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

Sfortunatamente non funziona. Forse perché 'the_id' è un numero? – shrewdbeans

+0

@shrewdbeans si prega di controllare la risposta aggiornata (aggiunto 'stringformat'). – alecxe

+2

Eccellente, +1 per 'stringformat' – shrewdbeans

Problemi correlati