Slug 字段不适用于 Django 中的孟加拉语。如何用孟加拉语处理 slug
Slug field does not work for Bengali language in django. How to work with slug in bengali
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)
将 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)
这是我如何在我的一个项目中完成此操作的示例。
标题:西班牙马德里孟加拉语新闻俱乐部两年一度的会议
您可以使用 SlugField 并允许 unicode,但您会得到 slug:sapnar-madrad-bal-paraskalbar-dabarashak-sammalan
让我们来解决这个问题:
models.py
slug = models.CharField(
max_length=200,
unique=True, blank=True, null=True, editable=True
)
def save(self,*args, **kwargs):
if not self.slug:
self.slug = self.title.replace(" ", "-").replace(",", "")
return super(BanglaModel, self).save(*args, **kwargs)
输出数据:Bangla-Pressclub-Biennial-Conference-in-Madrid-Spain
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)
将 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)
这是我如何在我的一个项目中完成此操作的示例。
标题:西班牙马德里孟加拉语新闻俱乐部两年一度的会议
您可以使用 SlugField 并允许 unicode,但您会得到 slug:sapnar-madrad-bal-paraskalbar-dabarashak-sammalan
让我们来解决这个问题:
models.py
slug = models.CharField(
max_length=200,
unique=True, blank=True, null=True, editable=True
)
def save(self,*args, **kwargs):
if not self.slug:
self.slug = self.title.replace(" ", "-").replace(",", "")
return super(BanglaModel, self).save(*args, **kwargs)
输出数据:Bangla-Pressclub-Biennial-Conference-in-Madrid-Spain