Сделать первые буквы заглавными в шаблон Django



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

819   4  

4 ответов:

С помощью встроенного шаблона Django фильтр называется title

{{ "myname"|title }}

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

{{ "waiting for action"|capfirst }}

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

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

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

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

это выведет "все предложения caps".

Comments

    Ничего не найдено.