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

How to create slugs in arabic characters in Django?

我想知道如何在 Django 中用 Arabic/Persian 字符串制作 slug?我想要实现的是创建像这样的 slug:

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

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

即所有空格、逗号和括号都需要转换为连字符。

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

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

那么在你的模型的 class 中你应该有一个像这样的函数:

def save(self, *args, **kwargs):
    self.slug = slugify(self.title)

注: 此行应出现在 module.py

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

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

SyntaxError: Non-ASCII character ...

你可以使用awesome-slugify

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