¿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?

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.


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



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

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

respuesta demasiado larga!
mohammedgqudah

@mohammedqudah, ¡depende de tus necesidades!
Cloud Artisans
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.