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

Jan*_*and 2 python django unicode slug

我想知道如何在 django 中用阿拉伯语/波斯语字符串制作鼻涕虫?我想要实现的是创建像这样的slugs:

\n\n
\xd8\xa7\xdb\x8c\xd9\x86-\xdb\x8c\xda\xa9-\xd8\xaa\xdb\x8c\xd8\xaa\xd8\xb1-\xd8\xa7\xd8\xb3\xd8\xaa\n
Run Code Online (Sandbox Code Playgroud)\n\n

在......之外\xd8\xa7\xdb\x8c\xd9\x86 \xdb\x8c\xda\xa9 \xd8\xaa\xdb\x8c\xd8\xaa\xd8\xb1 \xd8\xa7\xd8\xb3\xd8\xaa

\n\n

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

\n

Jan*_*and 5

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

\n\n
def slugify(str):\n    str = str.replace(" ", "-")\n    str = str.replace(",", "-")\n    str = str.replace("(", "-")\n    str = str.replace(")", "")\n    str = str.replace("\xd8\x9f", "")\n    return str\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在你的模型的类中你应该有一个类似的函数:

\n\n
def save(self, *args, **kwargs):\n    self.slug = slugify(self.title)\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意: \n此行应出现在 module.py 的开头

\n\n
# -*- coding: utf-8 -*-\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
SyntaxError: Non-ASCII character ...\n
Run Code Online (Sandbox Code Playgroud)\n