Antworten:
Verwenden des in Django integrierten Vorlagenfilters namens title
{{ "myname"|title }}
Ich weiß, dass es etwas spät ist, aber Sie können capfirst verwenden :
{{ "waiting for action"|capfirst }}
Dies führt zu "Warten auf Aktion"
Diese Lösung funktioniert auch, wenn Sie mehrere Wörter haben (zum Beispiel alle Großbuchstaben):
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
Dies gibt "All Caps Satz" aus.
Der title
Filter funktioniert einwandfrei, aber wenn Sie eine Zeichenfolge mit vielen Wörtern wie: haben "some random text"
, wird das Ergebnis sein "Some Random Text"
. Wenn Sie wirklich nur den ersten Buchstaben der gesamten Zeichenfolge in Großbuchstaben schreiben möchten , sollten Sie einen eigenen benutzerdefinierten Filter erstellen.
Sie können einen Filter wie diesen erstellen (befolgen Sie die Anweisungen zum Erstellen eines benutzerdefinierten Vorlagenfilters aus diesem Dokument - es ist ganz einfach):
# yourapp/templatetags/my_filters.py
from django import template
register = template.Library()
@register.filter()
def upfirstletter(value):
first = value[0] if len(value) > 0 else ''
remaining = value[1:] if len(value) > 1 else ''
return first.upper() + remaining
Anschließend sollten Sie die Datei my_filters in Ihre Vorlage laden und den dort definierten Filter verwenden:
{% load my_filters %}
...
{{ myname|upfirstletter }}
|capfirst
Es hat bei mir in der Vorlagenvariablen funktioniert.
{{ user.username|title }}
Wenn der Benutzer "al hasib" ist, gibt er "Al Hasib" zurück.
oder
{{ user.username|capfirst }}
Wenn der Benutzer 'hasib' ist, gibt der letzte "Hasib" zurück.
Beide sehen ungefähr gleich aus, aber es gibt einige Unterschiede.
Verwenden Sie einfach {{myname | capfirst}}
In Django kapitialisiert der Vorlagenfilter zuerst den ersten Buchstaben einer bestimmten Zeichenfolge.