如何从非英语值创建 slug?
How to create a slug from non-English values?
我有模型 Author,字段为 firstname,lastname。我想添加另一个字段 'slug'
它将包含一串字段的串联。但是,这些字段包含非英语字符,我需要一个英语 slug 来创建 link 模板 "localhost/authors/str::slug"
我该如何实施?
您可以先使用 trans
将名称转换为拉丁字符。
pip install trans
from trans import trans
from django.utils.text import slugify
author_slug = slugify( trans(first_name + " " + last_name) )
或者,如果您不介意以下字符:%20, %C3
,您可以使用
from urllib.parse import quote
author_slug = slugify( quote(first_name + " " + last_name) )
要解决此问题,您可以使用 unidecode
和 slugify
。
你应该通过 pip install unidecode
安装它
from unidecode import unidecode
from django.template import defaultfilters
slug = defaultfilters.slugify(unidecode(input_text))
示例:
import unidecode
a = unidecode.unidecode('привет')
the answer will be ('privet') #this is just an example in russian.
and after that you can apply slugify
我有模型 Author,字段为 firstname,lastname。我想添加另一个字段 'slug' 它将包含一串字段的串联。但是,这些字段包含非英语字符,我需要一个英语 slug 来创建 link 模板 "localhost/authors/str::slug" 我该如何实施?
您可以先使用 trans
将名称转换为拉丁字符。
pip install trans
from trans import trans
from django.utils.text import slugify
author_slug = slugify( trans(first_name + " " + last_name) )
或者,如果您不介意以下字符:%20, %C3
,您可以使用
from urllib.parse import quote
author_slug = slugify( quote(first_name + " " + last_name) )
要解决此问题,您可以使用 unidecode
和 slugify
。
你应该通过 pip install unidecode
from unidecode import unidecode
from django.template import defaultfilters
slug = defaultfilters.slugify(unidecode(input_text))
示例:
import unidecode
a = unidecode.unidecode('привет')
the answer will be ('privet') #this is just an example in russian.
and after that you can apply slugify