Respostas:
Usando o filtro de template embutido no Django chamado title
{{ "myname"|title }}
Eu sei que é um pouco tarde, mas você pode usar capfirst :
{{ "waiting for action"|capfirst }}
Isso resultará em "Aguardando ação"
Esta solução também funciona se você tiver várias palavras (por exemplo, todas em maiúsculas):
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
Isso produzirá "Frase em maiúsculas".
O title
filtro funciona bem, mas se você tiver uma string de muitas palavras como:, "some random text"
o resultado será "Some Random Text"
. Se o que você realmente deseja é maiúscula apenas a primeira letra de toda a string, você deve criar seu próprio filtro personalizado.
Você pode criar um filtro como este (siga as instruções sobre como criar um filtro de modelo personalizado a partir deste documento - é muito simples):
# 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
Então, você deve carregar o arquivo my_filters em seu modelo e usar o filtro definido lá:
{% load my_filters %}
...
{{ myname|upfirstletter }}
|capfirst
Apenas use {{myname | capfirst}}
no Django o filtro de template capprimeiro capatializar a primeira letra de uma dada string.