django模板,查找字符串替换为其他字符串

时间:2010-02-02 15:22:50

标签: django templates

Hay,我正在编写一些模板,但我想在字符串中将“”转换为“_”。

我想转换

的输出
{{ user.name }}

从“我的名字”到“我的名字”。我该怎么做?

4 个答案:

答案 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 %}

然而它非常冗长......