Django slug字段用阿拉伯语和其他外语

时间:2013-05-19 13:14:29

标签: django arabic

我正在尝试使用包含唯一标题的模型构建应用程序,一些用户将使用阿拉伯语和其他语言编写标题,并且在保存时,我尝试对该字段进行重组。如果是阿拉伯语,它将返回空白。有什么方法可以显示阿拉伯语的措辞,但是保持用破折号替换特殊字符和空格的段塞原则?

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)

4 个答案:

答案 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。