Format der Zeiten seit Filter

8

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.

    
David542 26.06.2011, 02:29
quelle

3 Antworten

21

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%     
Ismail Badawi 26.06.2011, 03:15
quelle
5

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.

    
Caspar 26.06.2011 03:12
quelle
-2

Eine schnelle und schmutzige Art:

Ändern Sie die Django-Quelldatei $ PYTHON_PATH / django / utils / timesince.py @ line51 (django1.7):

%Vor%     
hulk 22.06.2015 01:58
quelle

Tags und Links