Format des Datums im Template

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Möglicherweise gehört das ja in ein HTML Forum?
Ich schicke ein Queryset "profil" an ein Template und liste dort einige Inhalte auf:

Code: Alles auswählen

            {% for profil, gesamt, neu in zeilen %}
            <tr>
                <td>{{profil.vorname }}</td>            
                <td>{{profil.nachname }}</td>  
                <td>{{profil.user.username }}</td>            
                <td>{{profil.user.id }}</td>          
                <td>{{gesamt }}</td>
                <td>{{neu }}</td>
                <td>{{profil.user.last_login }}</td>
            </tr>            
            {% endfor %}
und "profil.user.last_login" wird z.B. als 18.Januar 2024 13:33" angezeigt. Ich will keinen Monatsname, möglichst nur zweistelliges Jahr und keine Uhrzeit. Wenn ich das vom view ans Template schicke, kann ich das - wie aber ändert man das in HTML - oder geht das nicht? Im Internet habe ich jedenfalls keine Möglichkeit gefunden (die ich verstehe). Sonst z.B bei Dezimalzahlen geht das doch ganz einfach - beim Datum nicht?
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

Pitwheazle hat geschrieben: Donnerstag 18. Januar 2024, 13:37 oder geht das nicht?
Ich sage mal: Nein, das geht nicht... jedenfalls nicht in HTML.
Pitwheazle hat geschrieben: Donnerstag 18. Januar 2024, 13:37 Sonst z.B bei Dezimalzahlen geht das doch ganz einfach - beim Datum nicht?
Das geht wie bei z.B bei Dezimalzahlen?
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn man im Template mit übergebenen Werten irgendwas machen will immer mal nach den in Django enthaltenen Template-Filtern schauen. Die können einiges. Für's Datum gibt es auch was: https://docs.djangoproject.com/en/4.2/r ... tins/#date.

Gruß, noisefloor
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

grubenfox hat geschrieben: Donnerstag 18. Januar 2024, 14:02 Das geht wie bei z.B bei Dezimalzahlen?
Danke, beim Suchen nach dem Filter bei Dezimalzahlen habe ich den für das Datum gefunden:

Code: Alles auswählen

<td>{{profil.user.last_login|date:"d.m.y" }}</td>
und diesen meinte ich bei Dezimalzahlen:

Code: Alles auswählen

{{protokoll.wert|floatformat:"-3"}}
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

Ach so, nicht in HTML, sondern in der Django-Template Sprache...
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Also war die Frage doch hier richtig und nicht im HTML Forum. Das ist also ein Django Teil!
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ja, also in dem Fall ja. Du bist im Template und alles in {{ }} gehört zu dem Teil vom Template, den die Django Template Engine auswertet. Eine HTML Frage wäre, wenn dir bei <td> oder <tr> oder so nicht klar wäre. Das hat dann wirklich nichts mit Django zu tun.

Gruß, noisefloor
Pitwheazle
User
Beiträge: 873
Registriert: Sonntag 19. September 2021, 09:40

Einfach gesagt, das was zwischen {{}} steht, bleibt auf dem Server und wird verabeitet ins Netz geschickt? ... und die Verarbeitung ist Django und nicht Python.
Benutzeravatar
snafu
User
Beiträge: 6742
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Pitwheazle hat geschrieben: Donnerstag 18. Januar 2024, 18:56 Einfach gesagt, das was zwischen {{}} steht, bleibt auf dem Server und wird verabeitet ins Netz geschickt? ... und die Verarbeitung ist Django und nicht Python.
Ja natürlich, die Platzhalter werden innerhalb der Django-Umgebung aufgelöst, bevor sie an die "Außenwelt" zurück geliefert werden. Anders kann es ja auch schlecht funktionieren, wenn eine Django-spezifische Template-Engine verwendet wird. Selbst wenn ein Browser die Syntax für x-beliebige Template-Sprachen kennen würde, so käme er ja immer noch nicht an die dahinterstehenden Inhalte für die Auflösung ran.

Templates sind nichts, was von HTML definiert wird, sondern die stellen einfach eine vorgelagerte Instanz dar. Auch sind Template-Sprachen keinesfalls auf HTML-Inhalte beschränkt. Der Template-Engine ist es nämlich egal, in welcher Art von Text sie die Ersetzungen vornehmen soll. Der Code für HTML-Seiten ist einfach nur ein prominentes Anwendungsgebiet dafür.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Django erstellt für dich eine HTML-Seite. Der Browser bei den Schülixen kann nur HTML anzeigen. OK und vielleicht Javascript usw. Aber Django folgt dabei deinen Vorgaben im Code. Dazu benutzt du ja die Template-Sprache, um Django mitzuteilen: Ungefähr so sollte das HTML am Ende aussehen, und hier fügst du noch dies ein, und dort jeweils einmal jenes für jedes Objekt in folgender Liste, usw.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten