我正在尝试使用包含唯一标题的模型构建应用程序,一些用户将使用阿拉伯语和其他语言编写标题,并且在保存时,我尝试对该字段进行重组。如果是阿拉伯语,它将返回空白。有什么方法可以显示阿拉伯语的措辞,但是保持用破折号替换特殊字符和空格的段塞原则?
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
def save(self, *args, **kwargs):
if self.slug is in (None, '', u''):
self.slug = slugify(self.title)
super(Article, self).save(*args, **kwargs)
答案 0 :(得分:4)
要启用网址编码器,只需打开settings.py并在文件末尾插入新行:
ALLOW_UNICODE_SLUGS = True
答案 1 :(得分:2)
Django 1.9的新功能是setting allow_unicode
:
slug = SlugField(allow_unicode=True)
答案 2 :(得分:2)
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
if not self.slug:
self.slug = arabic_slugify(self.title)
super(Note, self).save(*args, **kwargs)
def __str__(self):
return self.title
def arabic_slugify(str):
str = str.replace(" ", "-")
str = str.replace(",", "-")
str = str.replace("(", "-")
str = str.replace(")", "")
str = str.replace("؟", "")
return str
答案 3 :(得分:0)
检查这个https://github.com/mozilla/unicode-slugify,我在Django 1.4.x / 1.5.x中使用它,我也在寻找阿拉伯文slugs。