¿Cómo mostrar el año actual en una plantilla de Django?

163

¿Cuál es la etiqueta de plantilla incorporada para mostrar el año actual dinámicamente? Como "2011", ¿cuál sería la etiqueta de plantilla para mostrar eso?

Willy Nelson
fuente

Respuestas:

324

La etiqueta completa para imprimir solo el año actual es {% now "Y" %}. Tenga en cuenta que la Y debe estar entre comillas.

Marrón Haldean
fuente
44
Para el registro, {% now%} no dará resultados adecuados para los usuarios dentro de una zona horaria diferente a la del servidor.
Tomasz Zieliński
27
@Thomas True para algunos casos, sin embargo, el caso de uso más común que he visto para querer el año en curso es un aviso de copyright, y realmente no es tan importante que sea perfecto durante esas 24 horas mientras el 1 de enero se abre paso el mundo.
Endophage
2
dicho sea de paso, ese código es incorrecto, Ydebe citarse como en la respuesta de cabishek.
Endophage
Si recibiera el mes, es decir, "M", ¿cómo llegaría de "noviembre" a "noviembre"
Josh
1
@ Josh los documentos completos son docs.djangoproject.com/en/dev/ref/templates/builtins/… , pero estás buscando en Flugar deM
Haldean Brown el
43

{% now 'Y' %} es la sintaxis correcta

cabhishek
fuente
2

He usado lo siguiente en mi sitio web basado en Django http://pmtboyshostelraipur.pythonanywhere.com/ que funciona bien como se esperaba (tal vez, para el momento en que esté leyendo esta publicación, hubiera dejado de funcionar porque es un alojamiento gratuito, así que solo intente en el código y vea).

{% now 'Y' %}

Puede visitarlo y verlo en la parte del pie de página donde he mostrado el año actual usando el código a continuación (la parte CSS se omite, así que use el suyo).

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

Y muestra el siguiente texto centrado en el pie de página de mi sitio web.

©2018, PMT Boys hostel 
All rights reserved
Hullull
fuente
-2

En mi plantilla, aparte del año actual, necesitaba un menú desplegable del año de vencimiento de la tarjeta de crédito con 20 valores (comenzando con el año actual). Los selectvalores deben ser de 2 dígitos y las cadenas de visualización de 4 dígitos. Para evitar el código de plantilla complejo, escribí esta etiqueta de plantilla simple:

@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)

Y lo usé de la siguiente manera:

<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>
Artesanos de la nube
fuente
respuesta demasiado larga!
mohammedgqudah
@mohammedqudah, ¡depende de tus necesidades!
Cloud Artisans