簡體   English   中英

django 1.9 slug字段不適用於外語

[英]django 1.9 slug field is not working for foreign language

我正在構建一個帖子應用程序,該應用程序將根據帖子標題自動創建子彈。 如果標題中包含任何外語,則不會產生任何錯誤。

我已經在這里找到了一些答案,但這並沒有太大幫助。 我在下面缺少什么嗎?

class Post(models.Model):
    title = models.CharField(max_length=120)
    slug = models.SlugField(unique=True, allow_unicode=True)
    content = models.TextField()

def create_slug(instance, new_slug=None):
    slug = slugify(instance.title)
    if new_slug is not None:
        slug = new_slug

    qs = Post.objects.filter(slug=slug).order_by("-id")
    exists = qs.exists()
    if exists:
        new_slug = "%s-%s" %(slug, qs.first().id)
        return create_slug(instance, new_slug=new_slug)

    return slug

def pre_save_post_receiver(sender, instance, *args, **kwargs):
    if not instance.slug:
        instance.slug = create_slug(instance)

在以下settings.py添加:

ALLOW_UNICODE_SLUGS = True

您需要告訴slugify它也應該允許unicode。 參見docs

def create_slug(instance, new_slug=None):
    slug = slugify(instance.title, allow_unicode=True)

另外,請注意: SlugField的默認max_length50個字符 因此,轉換長標題可能會導致對於SlugField來說太長了,並引發異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM