[django] 장고 템플릿 내에서 첫 글자를 대문자로 만들기
으로 저장된 데이터베이스에서 이름을 가져오고 있습니다 myname
. 장고 템플릿 안에 Myname
첫 글자가 대문자 로 표시되는 방법은 무엇입니까 ?
답변
제목 이라는 Django 기본 제공 템플릿 필터 사용
{{ "myname"|title }}
답변
답변
이 솔루션은 여러 단어 (예 : 모두 대문자)가있는 경우에도 작동합니다.
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
“All caps phrase”가 출력됩니다.
답변
title
필터는 잘 작동하지만 같은 많은 단어 문자열이있는 경우 : "some random text"
결과가 될 것입니다 "Some Random Text"
. 정말로 원하는 것이 전체 문자열의 첫 글자 만 대문자로 바꾸는 것이라면 사용자 지정 필터를 만들어야합니다.
다음과 같은 필터를 만들 수 있습니다 (이 문서 에서 사용자 지정 템플릿 필터를 만드는 방법에 대한 지침을 따르십시오. 매우 간단합니다).
# 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 }}
답변
템플릿 변수에서 나를 위해 일했습니다.
{{ user.username|title }}
사용자가 “al hasib”이면 “Al Hasib”를 반환합니다.
또는
{{ user.username|capfirst }}
사용자가 ‘hasib’이면 마지막 사용자는 “Hasib”를 반환합니다.
둘 다 똑같이 보이지만 약간의 차이가 있습니다.
답변
{{myname | capfirst}}
Django에서 템플릿 필터 capfirst를 사용 하여 주어진 문자열의 첫 글자를 capatialize하십시오.