Odpowiedzi:
Korzystanie z wbudowanego filtru szablonu Django o nazwie title
{{ "myname"|title }}
Wiem, że jest trochę późno, ale możesz użyć capfirst :
{{ "waiting for action"|capfirst }}
Spowoduje to „Oczekiwanie na działanie”
To rozwiązanie działa również, jeśli masz wiele słów (na przykład wszystkie litery):
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
Spowoduje to wyświetlenie tekstu „Zdanie z dużymi literami”.
title
Filtr działa prawidłowo, ale jeśli masz ciąg wielu-słowa jak: "some random text"
wynik będzie "Some Random Text"
. Jeśli naprawdę chcesz pisać wielką literą tylko pierwszą literę całego ciągu, powinieneś utworzyć własny niestandardowy filtr.
Możesz utworzyć taki filtr (postępuj zgodnie z instrukcjami, jak utworzyć niestandardowy filtr szablonu na podstawie tego dokumentu - to całkiem proste):
# 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
Następnie powinieneś załadować plik my_filters do swojego szablonu i użyć zdefiniowanego tam filtra:
{% load my_filters %}
...
{{ myname|upfirstletter }}
|capfirst
Po prostu użyj w {{myname | capfirst}}
Django filtru szablonowego capfirst kapatializującego pierwszą literę danego łańcucha.