如何防止slugify过滤器剥离非ASCII字母数字字符?(我正在使用Django 1.0.2)
slugify
cnprog.com的网址中包含汉字,因此我查看了他们的代码。他们没有slugify在模板中使用,而是在Question模型中调用此方法来获取永久链接
Question
def get_absolute_url(self): return '%s%s' % (reverse('question', args=[self.id]), self.title)
他们是不是在撒谎URL?
我在Askbot问答论坛上采用了一个名为unidecode的python软件包,它适用于基于拉丁语的字母,甚至对希腊人来说也很合理:
>>> import unidecode >>> from unidecode import unidecode >>> unidecode(u'διακριτικός') 'diakritikos'
它对亚洲语言有些奇怪:
>>> unidecode(u'影師嗎') 'Ying Shi Ma ' >>>
这有意义吗?
在askbot中,我们按如下方式计算段塞:
from unidecode import unidecode from django.template import defaultfilters slug = defaultfilters.slugify(unidecode(input_text))