Wie wird das aktuelle Jahr in einer Django-Vorlage angezeigt?

163

Was ist das eingebaute Template-Tag, um das aktuelle Jahr dynamisch anzuzeigen? Wie "2011", was wäre das Template-Tag, um das anzuzeigen?

Willy Nelson
quelle

Antworten:

324

Das vollständige Tag, das nur für das aktuelle Jahr gedruckt werden soll, lautet {% now "Y" %}. Beachten Sie, dass das Y in Anführungszeichen stehen muss.

Haldean Brown
quelle
4
Für den Datensatz liefert {% now%} keine korrekten Ergebnisse für Benutzer in einer anderen Zeitzone als dem Server.
Tomasz Zieliński
27
@Thomas True In einigen Fällen ist der häufigste Anwendungsfall, den ich gesehen habe, um das aktuelle Jahr zu wollen, ein Urheberrechtshinweis, und es ist wirklich nicht so wichtig, dass er für diese 24 Stunden perfekt ist, während der 1. Januar seinen Weg findet die Welt.
Endophage
2
YÜbrigens , dieser Code ist falsch, der muss wie in cabisheks Antwort zitiert werden.
Endophage
Wenn ich einen Monat bekommen würde, dh "M", wie würde ich "Nov" bis "November" bekommen
Josh
1
@ Josh die vollständigen Dokumente sind docs.djangoproject.com/de/dev/ref/templates/builtins/… , aber Sie suchen FstattM
Haldean Brown
43

{% now 'Y' %} ist die richtige Syntax

cabhishek
quelle
2

Ich habe auf meiner Django-basierten Website http://pmtboyshostelraipur.pythonanywhere.com/ Folgendes verwendet, das wie erwartet funktioniert (Vielleicht hätte es zum Zeitpunkt des Lesens dieses Beitrags nicht mehr funktioniert, da dies ein kostenloses Hosting ist versuchen Sie es im Code und sehen Sie).

{% now 'Y' %}

Sie können es im Fußzeilenteil besuchen und sehen, wo ich das aktuelle Jahr mit dem folgenden Code angezeigt habe (der CSS-Teil ist weggelassen, verwenden Sie also Ihren eigenen).

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

In der Fußzeile meiner Website wird der folgende zentrierte Text angezeigt.

©2018, PMT Boys hostel 
All rights reserved
Hygull
quelle
-2

In meiner Vorlage benötigte ich neben dem aktuellen Jahr eine Dropdown-Liste mit Ablaufdatum für Kreditkarten mit 20 Werten (beginnend mit dem aktuellen Jahr). Die selectWerte mussten 2-stellig und die Anzeigezeichenfolgen 4-stellig sein. Um komplexen Vorlagencode zu vermeiden, habe ich dieses einfache Vorlagen-Tag geschrieben:

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

Und verwendet es auf folgende Weise:

<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>
Wolkenhandwerker
quelle
zu lange Antwort!
Mohammedgqudah
@mohammedqudah, hängt von Ihren Bedürfnissen ab!
Cloud Artisans