Slug 字段不适用于 django 中的孟加拉语。如何在孟加拉语中使用蛞蝓
Posted
技术标签:
【中文标题】Slug 字段不适用于 django 中的孟加拉语。如何在孟加拉语中使用蛞蝓【英文标题】:Slug field does not work for Bengali language in django. How to work with slug in bengali 【发布时间】:2021-12-25 09:04:21 【问题描述】:Django slug 字段不适用于英语以外的任何其他语言。我想使用孟加拉语 这是代码
class Post(models.Model):
title = models.CharField(max_length=140)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
content = RichTextField(default="")
image = models.ImageField(upload_to="media/post")
url = models.SlugField(unique=True, max_length=250, null=True, blank=True)
likes = models.IntegerField(default=0)
created_date = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f"self.title"
def save(self, *args, **kwargs): # new
if not self.url:
slug_str = f"self.title-datetime.datetime.now()"
self.url = slugify(slug_str)
return super().save(*args, **kwargs)
【问题讨论】:
您可以添加自己的 slug 字段,名称为 CharField。然后你可以做任何事情。不要在你的情况下使用 slug 字段。 我已经在这里回答了这样的问题***.com/a/69765200/15042684试试吧。 【参考方案1】:将 allow_unicode=True 传递给您的 SlugField
以接受 unicode 字符
class Post(models.Model):
...
url = models.SlugField(allow_unicode=True, unique=True, max_length=250, null=True, blank=True)
那么当你生成 slug 时你需要pass the same parameter to django.utils.text.slugify
def save(self, *args, **kwargs): # new
if not self.url:
slug_str = f"self.title-datetime.datetime.now()"
self.url = slugify(slug_str, allow_unicode=True)
return super().save(*args, **kwargs)
【讨论】:
您使用的是哪个 slugify?默认 django.utils.text slugify 还是 python-slugify? @Mehadydjango.utils.text.slugify
,我之前已经链接到该函数的文档,但现在更清楚了以上是关于Slug 字段不适用于 django 中的孟加拉语。如何在孟加拉语中使用蛞蝓的主要内容,如果未能解决你的问题,请参考以下文章
无法将关键字 u'slug' 解析为 Django 中的字段错误?