J'extrais un nom d'une base de données qui est stocké sous forme de myname
. Comment puis-je l'afficher dans un modèle Django en tant que Myname
avec la première lettre en majuscule.
Réponses
Trop de publicités?En utilisant le filtre de modèle intégré de Django appelé titre
{{ "myname"|title }}
El title
fonctionne bien, mais si vous avez une chaîne de plusieurs mots comme : "some random text"
le résultat sera "Some Random Text"
. Si ce que vous voulez vraiment est de mettre en majuscule seulement la première lettre de la chaîne entière, vous devez créer votre propre filtre personnalisé.
Vous pouvez créer un filtre comme celui-ci (suivez les instructions sur la création d'un filtre de modèle personnalisé à partir de ce site). doc - 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 qui y est défini :
{% load my_filters %}
...
{{ myname|upfirstletter }}
Cela a fonctionné pour moi dans la variable de modèle.
{{ user.username|title }}
Si l'utilisateur est "al hasib", il retournera "Al Hasib".
ou
{{ user.username|capfirst }}
Si l'utilisateur est 'hasib' alors le dernier renverra "Hasib".
Les deux ressemblent à peu près à la même chose mais il y a quelques différences.
- Réponses précédentes
- Plus de réponses