Ausgabe
Ich habe mich gefragt, wie ich das aktuelle Datum in einer Django-Anwendung am besten abrufen kann.
Derzeit frage ich das Python-Datetime-Modul ab – aber da ich das Datum überall brauche, dachte ich, dass Django vielleicht bereits eine eingebaute Funktion dafür hat.
Ich möchte beispielsweise Objekte filtern, die im aktuellen Jahr erstellt wurden, also würde ich Folgendes tun:
YEAR = datetime.date.now().year
currentData = Data.objects.filter(date__year=YEAR)
Soll ich die YEAR
Variable in definieren settings.py
oder jetzt eine Funktion erstellen () oder gibt es dafür eine eingebaute Funktion?
Lösung
In Vorlagen gibt es bereits eine eingebaute Funktion now
:
Zeigt das aktuelle Datum und/oder die Uhrzeit in einem Format gemäß der angegebenen Zeichenfolge an. Eine solche Zeichenfolge kann Formatbezeichner enthalten, wie im Abschnitt Datumsfilter beschrieben.
Beispiel:
It is {% now "jS F Y H:i" %}
In Django 1.8 können Sie es verwenden mit as
:
{% now "Y" as current_year %}
{% blocktrans %}Copyright {{ current_year }}{% endblocktrans %}
In Python-Code ist kein Django für das Datum integriert, verwenden Sie einfach Python datetime.date.now()
, um Ihre eigene angepasste Funktion zu erstellen.
Beantwortet von – Assem
Antwort geprüft von – David Marino (FixError Volunteer)