Come visualizzare l'anno corrente in un modello Django?


163

Qual è il tag modello integrato per visualizzare l'anno in modo dinamico. Come "2011" quale sarebbe il tag modello per visualizzarlo?

Risposte:


325

Il tag completo da stampare solo per l'anno in corso è {% now "Y" %}. Nota che la Y deve essere tra virgolette.


4
Per la cronaca, {% now%} non fornirà risultati adeguati per gli utenti in fusi orari diversi rispetto al server.
Tomasz Zieliński,

27
Thomas True in alcuni casi, tuttavia, il caso d'uso più comune che ho visto per volere l'anno in corso è un avviso sul copyright, e non è poi così importante che sia perfetto per quelle 24 ore mentre il 1 ° gennaio si fa strada il mondo.
Endofago il

2
per inciso, quel codice è sbagliato, il Ydeve essere citato come nella risposta di cabishek.
Endofago

Se avessi ricevuto il mese, ad esempio "M", come avrei portato "Nov" a "Novembre"
Josh,

1
@Josh i documenti completi sono docs.djangoproject.com/en/dev/ref/templates/builtins/… , ma stai cercando Finvece diM
Haldean Brown,



2

Ho usato quanto segue nel mio sito web basato su Django http://pmtboyshostelraipur.pythonanywhere.com/ che funziona bene come previsto (Forse, quando leggi questo post, avrebbe smesso di funzionare perché è un hosting gratuito quindi solo prova nel codice e vedi).

{% now 'Y' %}

Puoi visitare e vederlo nella parte a piè di pagina in cui ho visualizzato l'anno corrente utilizzando il codice seguente (la parte CSS è stata omessa, quindi usa la tua).

<footer class="container-fluid" id="footer">
    <center>
        <p>
           &copy;
           {% now 'Y' %}, 
           PMT Boys hostel <br> 
           All rights reserved
        </p>
    </center>
</footer>

E sta visualizzando il seguente testo centrato nel piè di pagina del mio sito Web.

©2018, PMT Boys hostel 
All rights reserved

-2

Nel mio modello, a parte l'anno in corso, avevo bisogno di un menu a discesa per l'anno di scadenza della carta di credito con 20 valori (a partire dall'anno in corso). I selectvalori devono essere di 2 cifre e le stringhe di visualizzazione di 4 cifre. Per evitare un codice modello complesso, ho scritto questo semplice tag modello:

@register.filter
def add_current_year(int_value, digits=4):
    if digits == 2:
        return '%02d' % (int_value + datetime.datetime.now().year - 2000)
    return '%d' % (int_value + datetime.datetime.now().year)

E lo ha usato nel modo seguente:

<select name="card_exp_year">
    {% for i in 'iiiiiiiiiiiiiiiiiiii' %}
    <option value="{{ forloop.counter0|add_current_year:2 }}">{{ forloop.counter0|add_current_year:4 }}</option>
    {% endfor %}
</select>

risposta troppo lunga!
Mohammedgqudah,

@mohammedqudah, dipende dalle tue esigenze!
Cloud Artisans,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.