我从一个存储为 myname的数据库中提取一个名字。如何在 Django 模板中以 Myname的形式显示它,第一个字母大写。
myname
Myname
使用名为 书名的 Django 内置模板过滤器
\{\{ "myname"|title }}
title过滤器工作得很好,但是如果您有一个多字的字符串,比如: "some random text",那么结果将是 "Some Random Text"。如果您真正想要的是大写 只有整个字符串的第一个字母,您应该创建自己的自定义过滤器。
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 _ filter 文件,并使用在该模板中定义的过滤器:
{% load my_filters %} ... \{\{ myname|upfirstletter }}
我知道有点晚了,但你可以用 Capfirst:
\{\{ "waiting for action"|capfirst }}
这将导致“等待行动”
如果有多个单词(例如全部大写) ,这个解决方案也可以工作:
\{\{ "ALL CAPS SENTENCE"|lower|capfirst }}
这将输出“所有大写句子”。
它在模板变量中对我起作用。
\{\{ user.username|title }}
如果用户是“ Al Hasib”那么它将返回“ Al Hasib”
或者
\{\{ user.username|capfirst }}
如果用户是“ Hasib”那么最后一个将返回“ Hasib”
两者看起来差不多,但是有些不同。
用 \{\{myname | capfirst}} 在 Django 中,模板过滤器 Capfirst将给定字符串的第一个字母大写。
\{\{myname | capfirst}}
\{\{"myname"|title}} 这将使每个单词的首字母大写
\{\{"myname"|title}}