Gibt es eine Möglichkeit, den {{date|timesince}}
-Filter zu verwenden, aber statt zwei benachbarte Einheiten nur eine anzuzeigen?
Zum Beispiel zeigt meine Vorlage derzeit "18 Stunden, 16 Minuten" an. Wie könnte ich "18 Stunden" anzeigen lassen? (Rundung ist hier kein Thema.) Danke.
Ich kann mir keinen einfachen eingebauten Weg vorstellen. Hier ist ein benutzerdefinierter Filter, den ich manchmal nützlich fand:
%Vor%Dann könntest du einfach
machen %Vor%Da der Filter timesince keine Argumente akzeptiert , müssen Sie die Stunden von Ihrem Datum manuell entfernen.
Hier ist ein benutzerdefinierter Vorlagenfilter , mit dem Sie die Minuten streichen können , Sekunden und Mikrosekunden von Ihrem Datetime-Objekt:
%Vor% Wenn Sie noch keinen benutzerdefinierten Vorlagenfilter oder -Tag verwendet haben, müssen Sie in Ihrer Django-Anwendung (dh auf der gleichen Ebene wie models.py und views.py) ein Verzeichnis namens templatetags
erstellen und erstellen eine Datei darin namens __init__.py
(das macht ein Standard-Python-Modul).
Erstellen Sie anschließend eine Python-Quelldatei, beispielsweise my_tags.py
, und fügen Sie den obigen Beispielcode ein. Verwenden Sie in Ihrer Ansicht {% load my_tags %}
, um Django dazu zu bringen, Ihre Tags zu laden, und dann können Sie den obigen Filter verwenden, wie in der obigen Dokumentation gezeigt.
Tags und Links django django-templates