Подтвердить что ты не робот

Сделайте первую букву в верхнем регистре внутри шаблона django

Я вытаскиваю имя из базы данных, которая хранится как myname. Как отобразить это внутри шаблона Django как myname, причем первая буква находится в верхнем регистре.

4b9b3361

Ответ 1

Использование встроенного фильтра шаблонов Django под названием title

{{ "myname"|title }}

Ответ 2

Я знаю это немного позже, но вы можете использовать capfirst:

{{ "waiting for action"|capfirst }}

Это приведет к появлению "Ожидание действий"

Ответ 3

Это решение также работает, если у вас есть несколько слов (например, все заглавные буквы):

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

Это выведет "Все заглавные буквы".

Ответ 4

Фильтр title работает отлично, но если у вас много слов, например: "some random text", результат будет "some random text". Если то, что вы действительно хотите, это прописная только первая буква всей строки, вы должны создать свой собственный настраиваемый фильтр.

Вы можете создать такой фильтр (следуйте инструкциям по созданию настраиваемого фильтра шаблонов из этого doc - это довольно просто ):

# 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

Затем вы должны загрузить файл my_filters в свой шаблон и использовать указанный там фильтр:

{% load my_filters %}

...
{{ myname|upfirstletter }}

Ответ 5

У меня это работало в шаблонной переменной.

{{ user.username|title }}

Если пользователь имеет значение "Аль-Хасиб", он возвращает "Аль-Хасиб"

.или

{{ user.username|capfirst }}

Если пользователь имеет значение 'hasib', то последний вернет "Hasib"

Оба выглядят примерно так же, но есть некоторые различия.