Comment afficher l'année en cours dans un template Django?


163

Quelle est la balise de modèle intégrée pour afficher l'année en cours de manière dynamique. Comme "2011", quelle serait la balise de modèle pour afficher cela?

Réponses:


325

La balise complète à imprimer uniquement l'année en cours est {% now "Y" %}. Notez que le Y doit être entre guillemets.


4
Pour mémoire, {% now%} ne donnera pas de résultats corrects pour les utilisateurs dans un fuseau horaire différent de celui du serveur.
Tomasz Zieliński

27
@ThomasVrai dans certains cas, cependant, le cas d'utilisation le plus courant que j'ai vu pour vouloir l'année en cours est un avis de droit d'auteur, et ce n'est vraiment pas si important qu'il soit parfait pendant ces 24 heures pendant que le 1er janvier fait son chemin. le monde.
Endophage du

2
d'ailleurs, ce code est faux, le Ydoit être cité comme dans la réponse de cabishek.
Endophage

Si j'obtenais le mois, c'est-à-dire "M", comment pourrais-je obtenir "Nov" à "Novembre"
Josh

1
@Josh, la documentation complète est docs.djangoproject.com/en/dev/ref/templates/builtins/… , mais vous cherchez à la Fplace deM
Haldean Brown



2

J'ai utilisé ce qui suit dans mon site Web basé sur Django http://pmtboyshostelraipur.pythonanywhere.com/ qui fonctionne bien comme prévu (peut-être qu'au moment où vous lirez cet article, cela aurait cessé de fonctionner car c'est un hébergement gratuit, donc juste essayez dans le code et voyez).

{% now 'Y' %}

Vous pouvez le visiter et le voir dans la partie pied de page où j'ai affiché l'année en cours en utilisant le code ci-dessous (la partie CSS est omise, utilisez la vôtre).

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

Et il affiche le texte centré suivant dans le pied de page de mon site Web.

©2018, PMT Boys hostel 
All rights reserved

-2

Dans mon modèle, à part l'année en cours, j'avais besoin d'un menu déroulant de l'année d'expiration de la carte de crédit avec 20 valeurs (en commençant par l'année en cours). Les selectvaleurs devaient être de 2 chiffres et les chaînes d'affichage de 4 chiffres. Pour éviter le code de modèle complexe, j'ai écrit cette balise de modèle 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)

Et l'a utilisé de la manière suivante:

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

réponse trop longue!
mohammedgqudah

@mohammedqudah, dépend de vos besoins!
Cloud Artisans
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.