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

dot*_*tty 28 django templates

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

我想转换输出

{{ user.name }}
Run Code Online (Sandbox Code Playgroud)

从"我的名字"到"我的名字"之类的东西.我该怎么做呢?

dan*_*iel 81

Matthijs答案的简短版本:

{{ user.name.split|join:"_" }}
Run Code Online (Sandbox Code Playgroud)

当然它只在分裂空白时才有效.

  • 我喜欢更短的版本. (2认同)
  • 哇 !我怎么想念那个? (2认同)

Ign*_*ams 11

没有内置标签或过滤器来进行此替换.编写按给定字符拆分的过滤器,然后将其与join过滤器组合,或者编写直接替换替换的过滤器.


Mat*_*ijs 7

我喜欢在我的视图/控制器代码中执行这种类型的转换,即:

user.underscored_name = user.name.replace(' ','_')
context['user'] = user
Run Code Online (Sandbox Code Playgroud)

不要害怕只是添加一个新的(临时)属性并在模板中使用它:

{{ user.underscored_name }}
Run Code Online (Sandbox Code Playgroud)

如果在更多位置使用此方法,请将方法underscored_name添加到User模型:

class User()
  def underscored_name(self):
    return self.name.replace(' ','_')
Run Code Online (Sandbox Code Playgroud)