乾草,我正在寫一些模板,但我想在一個字符串內將「」轉換爲「_」。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