Non so se è possibile, ma mi piacerebbe essere in grado di scrivere qualcosa di simile a quanto segue:Creazione di un elenco al volo in un modello di Django
{% with var1 var2 var3 as some_list %}
{{ some_list|maximum }}
{% endwith %}
Creazione di un elenco al volo da un numero arbitrario di variabili di template e/o letterali sembra utile, quindi sono fiducioso di aver trascurato qualcosa di semplice.
In caso contrario, mi piacerebbe sapere come creare un tag modello che accetta un numero arbitrario di argomenti. (Ho giocato in giro con simple_tag
, che funziona bene per i tag che accettano un numero fisso di argomenti.)
Io non voglio andare alla difficoltà di creare un parser e sottoclasse django.template.Node
fino a quando ho constatato che non c'è una soluzione più semplice.
+1. Questa soluzione consente di salvare l'elenco risultante in un'altra variabile, consentendoti di operare in seguito. –
Grazie, Will. Questo va bene per il conto. Il motivo per cui l'elaborazione nella vista non è un'opzione è che sto creando un modello per un'app Django riutilizzabile. La vista fornisce un elenco completo di elementi. All'interno del modello sto impostando il numero massimo di elementi da visualizzare usando '{% con 5 come% massimo}'. Oltre ad emettere il numero appropriato di elementi, includo un conteggio di visualizzazione nel formato "visualizzazione di X di articoli Y". X è o 'items | length' o' max', qualunque sia il più piccolo. Quindi ho bisogno di trovare il più piccolo dei due valori, uno dei quali è impostato all'interno del modello stesso. – davidchambers
Dovrebbe essere 'len (bit)> 3' anziché' len (bit)> 4' per consentire una lista con un singolo oggetto da creare. – davidchambers