Réponses:
Utilisation du filtre de modèle intégré Django appelé title
{{ "myname"|title }}
Je sais qu'il est un peu tard, mais vous pouvez utiliser capfirst :
{{ "waiting for action"|capfirst }}
Cela se traduira par "En attente d'action"
Cette solution fonctionne également si vous avez plusieurs mots (par exemple en majuscules):
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
Cela affichera "All caps phrase".
Le titlefiltre fonctionne bien, mais si vous avez une chaîne de plusieurs mots comme:, "some random text"le résultat sera "Some Random Text". Si vous voulez vraiment mettre en majuscule uniquement la première lettre de toute la chaîne, vous devez créer votre propre filtre personnalisé.
Vous pouvez créer un filtre comme celui-ci (suivez les instructions pour créer un filtre de modèle personnalisé à partir de ce document - c'est assez simple):
# 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
Ensuite, vous devez charger le fichier my_filters dans votre modèle et utiliser le filtre défini ici:
{% load my_filters %}
...
{{ myname|upfirstletter }}
|capfirst
Cela a fonctionné pour moi dans la variable de modèle.
{{ user.username|title }}
Si l'utilisateur est "al hasib" alors il retournera "Al Hasib"
ou
{{ user.username|capfirst }}
Si l'utilisateur est 'hasib' alors le dernier retournera "Hasib"
Les deux ressemblent à quelque chose, mais il y a quelques différences.
Il suffit d'utiliser {{myname | capfirst}}
dans Django le modèle de filtre capfirst capatialize la première lettre d'une chaîne donnée.