145 votes

Mettre la première lettre en majuscule dans un modèle django

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.

272voto

Aamir Adnan Points 10903

En utilisant le filtre de modèle intégré de Django appelé titre

{{ "myname"|title }}

163voto

oblalex Points 221

Je sais que c'est un peu tard, mais vous pouvez utiliser capfirst :

{{ "waiting for action"|capfirst }}

Cela se traduira par "Attente d'action".

28voto

Bjorn Garcia Points 289

Cette solution fonctionne également si vous avez plusieurs mots (par exemple tout en majuscules) :

{{ "ALL CAPS SENTENCE"|lower|capfirst }}

Cela donnera "All caps sentence".

8voto

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 }}

4voto

hasib Points 29

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X