gpt4 book ai didi

python - 在 django slug 字段中使用外语不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:39:51 25 4
gpt4 key购买 nike

这个问题可能有点大,我会尽量解释发生的一切。下面是我的标题模型,它用标题填充 slug 字段本身:

class Heading(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=5000)
content =RichTextUploadingField ()
image= models.ImageField(null=True,blank=True)
date = models.DateField(default=datetime.now())
time = models.TimeField(default=datetime.now())
slug = models.SlugField(unique=True, null=True, blank=True)

def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super(Heading, self).save(*args, **kwargs)

我的标题是外语(具体是尼泊尔语)下面是我的管理面板的图像,用于填充标题类 headingclass

如您所见,我的标题是外语的,但我的 slug 字段是通过将标题转换为英语自动填充的,这不是我想要的,我希望我的 slug 字段以与我的标题字段相同的语言填充.我做了一些搜索,一个名为 unidecode 的模块可能是它的解决方案,我也尝试过使用它但是由于它的文档不是很好我无法理解它。所以如果有任何其他解决方案或如何做出正确的使用 unidecode?任何类型的帮助或线索将不胜感激

最佳答案

问题是,slugification 发生在 JavaScript 中(至少在标准的 Django admin 中),在它到达服务器之前(你可以在 admin contrib 包中查找 urlify.js)。

SlugField 上有一个名为 allow_unicode 的新选项,它可能会做你想做的,但它是在 Django 1.9 中引入的。

如果你还不能升级到 1.9,理论上你可以在你的服务器上设置一些端点,它会接受一个字符串,在它上面运行 unidecode,然后返回它,然后做一些自定义的JavaScript 代码会覆盖管理员中的默认 slugification,但这听起来工作量很大。

另一种选择是完全对管理员隐藏 slug 字段,并执行类似于您在问题中发布的代码片段的操作,除了您可能应该在 ModelAdmin 类中执行此操作模型本身(在将字符串传递给 slugify 之前,您可能想在那里使用 unidecode)。

关于python - 在 django slug 字段中使用外语不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34308893/

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