如何在Django中创建阿拉伯字符的slug?

时间:2015-02-05 22:11:23

标签: python django unicode slug

我想知道如何用django中的阿拉伯语/波斯语字符串制作slug?我想要实现的是创建像:

这样的slu ..
این-یک-تیتر-است

این یک تیتر است

也就是说,所有空格,逗号和括号都需要转换为连字符。

2 个答案:

答案 0 :(得分:2)

好的,感谢python的优秀字符串库,结果比我想象的要容易。只需要定义一个这样的函数:

def slugify(str):
    str = str.replace(" ", "-")
    str = str.replace(",", "-")
    str = str.replace("(", "-")
    str = str.replace(")", "")
    str = str.replace("؟", "")
    return str

然后在你的模型课中你应该有一个像:

这样的函数
def save(self, *args, **kwargs):
    self.slug = slugify(self.title)

注意: 该行应出现在module.py

的开头
# -*- coding: utf-8 -*-

否则您可能会收到如下错误:

SyntaxError: Non-ASCII character ...

答案 1 :(得分:0)

您可以使用awesome-slugify

from slugify import  slugify_unicode
print(slugify_unicode('این یک تیتر است'))