干草,我正在写一些模板,但我想在一个字符串内将“”转换为“_”。django模板,查找字符串替换为其他字符串
我想输出从像“我的名字”,以“MY_NAME”转换的
{{ user.name }}
。我该怎么做呢?
干草,我正在写一些模板,但我想在一个字符串内将“”转换为“_”。django模板,查找字符串替换为其他字符串
我想输出从像“我的名字”,以“MY_NAME”转换的
{{ user.name }}
。我该怎么做呢?
没有内置的标签或过滤器来做这个替换。编写一个按给定字符分割的过滤器,然后将其与join
过滤器结合使用,或者编写一个直接进行替换的过滤器。
如果你不喜欢写自己的自定义标签,你可以做这样的......
{% for word in user.name.split %}{{word}}{% if not forloop.last %}_{% endif %}{% endfor %}
但是它非常详细...
我喜欢在执行这种类型的转换我的看法/控制器代码,即:
user.underscored_name = user.name.replace(' ','_')
context['user'] = user
不要害怕只需添加一个新的(临时)财产,在您的模板使用:
{{ user.underscored_name }}
如果你使用这个在更多的地方的方法underscored_name添加到用户模式:
class User()
def underscored_name(self):
return self.name.replace(' ','_')
只要该属性不被django html页面调用,它就会工作。推荐在该类中设置一个'self.underscored_name'字段。无论如何,因为它帮助我解决了一个问题。 – IAbstract 2014-08-27 20:52:42
http://docs.djangoproject.com/en/dev/howto/custom-template-tags/ – jcdyer 2010-02-02 15:34:37
似乎我不能使用自定义过滤器与包含,任何想法? – dotty 2010-02-02 15:53:02
重新注意:用户{%load%}! – dotty 2010-02-02 16:03:38