如何在 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('این یک تیتر است'))
我想知道如何在 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('این یک تیتر است'))