Hay,我正在编写一些模板,但我想在字符串中将“”转换为“_”。
我想转换
的输出{{ user.name }}
从“我的名字”到“我的名字”。我该怎么做?
答案 0 :(得分:78)
Matthijs答案的缩短版本:
{{ user.name.split|join:"_" }}
当然它只适用于在空格上分割时。
答案 1 :(得分:11)
没有内置标签或过滤器来进行此替换。编写按给定字符拆分的过滤器,然后将其与join
过滤器合并,或者编写直接替换替换的过滤器。
答案 2 :(得分:7)
我喜欢在我的视图/控制器代码中执行这种类型的转换,例如:
user.underscored_name = user.name.replace(' ','_')
context['user'] = user
不要害怕只添加一个新的(临时)属性并在模板中使用它:
{{ user.underscored_name }}
如果您在更多地方使用此功能,请将方法underscored_name添加到用户模型:
class User()
def underscored_name(self):
return self.name.replace(' ','_')
答案 3 :(得分:4)
如果您不想编写自己的自定义标记,可以这样做......
{% for word in user.name.split %}{{word}}{% if not forloop.last %}_{% endif %}{% endfor %}
然而它非常冗长......