gpt4 book ai didi

python - 在 slug 中编写波斯语并在 django 的地址栏中使用它

转载 作者:行者123 更新时间:2023-11-28 22:21:58 24 4
gpt4 key购买 nike

我使用 django 并且在我的模型中我想在 slugfield 中编写波斯语(通过使用 utf-8 或其他东西)并在页面地址中使用 slug我为模型编写了这个类:

class Category(models.Model):
name = models.CharField(max_length=20, unique=True)
slug = models.SlugField(max_length=20, unique=True)
description = models.CharField(max_length=500)
is_active = models.BooleanField(default=False)
meta_description = models.TextField(max_length=160, null=True, blank=True)
meta_keywords = models.TextField(max_length=255, null=True, blank=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL)

def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)

def __str__(self):
return self.name

def category_posts(self):
return Post.objects.filter(category=self).count()

但是保存后 slug 列中没有任何内容,我不知道在 url 中写什么来显示波斯语。你能告诉我该怎么办吗?

我使用 django 1.9 和 python 3.6。

最佳答案

docstring slugify 函数是:

Convert to ASCII if 'allow_unicode' is False. Convert spaces to hyphens. Remove characters that aren't alphanumerics, underscores, or hyphens. Convert to lowercase. Also strip leading and trailing whitespace.

因此您需要将 allow_unicode 标志设置为 True 以保留波斯语文本。

>>> text = 'سلام عزیزم! عزیزم سلام!'
>>> slugify(text)
''
>>> slugify(text, allow_unicode=True)
'سلام-عزیزم-عزیزم-سلام'
>>>

关于python - 在 slug 中编写波斯语并在 django 的地址栏中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47938594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com