2012-04-28 115 views

回答

16

你可以自己做

from django import template 
from django.template.defaultfilters import stringfilter 

register = template.Library() 

@register.filter 
@stringfilter 
def trim(value): 
    return value.strip() 

Documentation

+12

任何訪問這裏的人都應該看看Ibatteau的解決方案,它更簡單 - 只需在模板本身內使用.strip(不需要註冊新的過濾器)。 – bryn 2013-07-22 23:02:09

+2

使用'{{var.example.strip}}'確實更簡單,但是這裏的解決方案也有其用處。例如,它允許你執行'{%filter trim%} {%someothertag%} {%endfilter%}',這是不可能的。 – jlh 2016-06-16 09:04:09

77

Django templates允許您通過使用訪問方法和屬性 ''語法:

{{ var.example.strip }} 

您可以通過鏈接其他過濾器,當你處理HTML擴展此,如:

{{ var.example.strip|safe|removetags:"p img" }} 

在這裏,我們首先刪除任何<p><img>標籤,然後告訴Django它可以安全地渲染剩下的內容,我們已經刪除了任何空格。

+4

是否有文件記錄或是否是一種非官方的技巧? – Medorator 2014-06-08 11:26:44

+3

它不是Django函數,但是是Python的。這裏記錄:https://docs.python.org/2/library/stdtypes.html#str.strip。 Django模板變量的文檔:https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek 2015-08-24 10:44:29

+1

一個評論 - 'removetags'過濾器從django 1.10被刪除,所以要小心 – Jerzyk 2016-07-01 15:29:39

相關問題