在 django 模板中设置第一个字母大写

我从一个存储为 myname的数据库中提取一个名字。如何在 Django 模板中以 Myname的形式显示它,第一个字母大写。

109379 次浏览

使用名为 书名的 Django 内置模板过滤器

\{\{ "myname"|title }}

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"|title}} 这将使每个单词的首字母大写