May*_*ank 98 django django-templates
我从存储为的数据库中提取名称myname
.我如何在Django模板中显示这个Myname
,第一个字母是大写的.
Aam*_*nan 176
使用Django内置的模板过滤器名为title
{{ "myname"|title }}
Run Code Online (Sandbox Code Playgroud)
obl*_*lex 112
我知道它有点晚了,但你可以使用capfirst:
{{ "waiting for action"|capfirst }}
Run Code Online (Sandbox Code Playgroud)
这将导致"等待行动"
小智 14
如果您有多个单词(例如全部大写),此解决方案也有效:
{{ "ALL CAPS SENTENCE"|lower|capfirst }}
Run Code Online (Sandbox Code Playgroud)
这将输出"全部大写句子".
该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
Run Code Online (Sandbox Code Playgroud)
然后,您应该在模板中加载my_filters文件,并使用在那里定义的过滤器:
{% load my_filters %}
...
{{ myname|upfirstletter }}
Run Code Online (Sandbox Code Playgroud)
它在模板变量中对我有用。
{{ user.username|title }}
Run Code Online (Sandbox Code Playgroud)
如果用户是“al hasib”那么它将返回“Al Hasib”
或者
{{ user.username|capfirst }}
Run Code Online (Sandbox Code Playgroud)
如果用户是“hasib”,那么最后一个将返回“Hasib”
两者看起来很相似,但也有一些区别。
归档时间: |
|
查看次数: |
55997 次 |
最近记录: |