Django TimeField Modell ohne Sekunden

8

Grüße, Ich versuche, ein TimeField-Modell zu implementieren, das nur aus dem HH: MM-Format (16:46) besteht. Ich weiß, dass es möglich ist, ein normales Python-Zeitobjekt zu formatieren, aber ich weiß nicht, wie ich das mit Django handhaben soll >

Prost

    
Hellnar 06.08.2009, 17:21
quelle

6 Antworten

6

DateTime Felder werden immer auch Sekunden speichern; Sie können die Vorlage jedoch einfach so anzeigen, dass nur die Stunden und Minuten mit dem time -Filter angezeigt werden:

%Vor%

wobei "Wert" die Variable ist, die das Datum / Uhrzeit-Feld enthält.

Natürlich können Sie auch auf andere Tricks zurückgreifen, wie zum Beispiel das Ausschneiden der Sekunden aus dem Feld beim Speichern; Es würde nur eine kleine Änderung an dem Code in der Ansicht erfordern, die das Formular behandelt, um etwas wie folgt zu tun:

%Vor%

(Hinweis: Dies ist ein hässlicher und ungeprüfter Code, nur um die Idee zu geben!)

Schließlich sollten Sie beachten, dass der Admin immer noch die Sekunden im Feld anzeigen wird.
Es sollte jedoch keine große Sorge sein, da Admin nur von einer Art von Benutzern verwendet werden sollte, die angewiesen werden können, diesen Teil des Feldes nicht zu verwenden Falls Sie auch den Admin patchen möchten, können Sie dem Formular immer noch Ihr eigenes Widget zuweisen und somit den Admin verwenden. Das würde natürlich einen erheblichen zusätzlichen Aufwand bedeuten.

    
Roberto Liffredo 06.08.2009, 20:00
quelle
4

Django Widget kann verwendet werden, um dies leicht zu erreichen.

%Vor%     
IJR 18.04.2012 05:41
quelle
3

Also ich denke, die vorgeschlagene und akzeptierte Lösung ist nicht optimal, weil mit:

%Vor%

Für ein SplitDateTimeField in meinem Fall, aber für Sie nur in TimeWidget ändern.

Ich hoffe, es hilft auch anderen Menschen.

    
user698296 17.06.2011 10:58
quelle
2

TimeField-Modell

in Vorlage

Wird angezeigt

%Vor%


Wird nicht angezeigt

%Vor%

Django 1.4.1

    
Kohei Hosoe 28.05.2013 10:54
quelle
1

Für ein ModelForm können Sie einfach ein Widget wie dieses hinzufügen, um zu vermeiden, dass die Sekunden angezeigt werden (zeigen Sie einfach hh: mm):

%Vor%     
SaeX 20.10.2015 12:28
quelle
0

Auf Django 1.9 sollte das folgende Format funktionieren:

%Vor%

Django hat eine ganze Reihe von Template-Tags und Filtern.

Django 1.9 Dokumentation dazu ist:

Ссылка

    
mrmango 19.10.2016 10:11
quelle

Tags und Links