Slugify删除所有前导空格,您需要将其重写为自定义模板标签以获得您所追求的行为。原始过滤器代码如下所示
def slugify(value):
"""
Normalizes string, converts to lowercase, removes non-alpha characters,
and converts spaces to hyphens.
"""
import unicodedata
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
return mark_safe(re.sub('[-\s]+', '-', value))
它将“some string”更改为“some-string”,从而消除了额外的空格。你可以像这样改变它:
def new_slugify(value):
"""
Normalizes string, converts to lowercase, removes non-alpha characters,
and converts spaces to hyphens, does not remove leading whitespace.
"""
import unicodedata
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
return mark_safe(re.sub('[-\s]', '-', value))
这将导致以下行为:“Some String here”到“some--string-here”
您可能仍然会遇到前面提到的 html 如何处理额外空格的问题,您必须编写另一个 deslugify 过滤器。