/ /中国語のテキストからスラッグを生成する方法は? -django、django-admin

どのように中国語のテキストからスラグを生成するには? - django、django-admin

私はadmin.pyに中国語を読もうとしていますが、どうすればそれができるのかわかりません。これは私が持っているものです。

admin.py

from django.contrib import admin
from collection.models import Thing


class ThingAdmin(admin.ModelAdmin):
model = Thing
list_display = ("name", "description",)
prepopulated_fields = {"slug": ("name",)}


admin.site.register(Thing, ThingAdmin)

models.py

from django.db import models

class Thing(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
slug = models.SlugField(unique=True)

今では英語で入力することができ、スラッグは適切に生成されますが、中国語でスラッグを試してみると空白です。 ここに画像の説明を入力 ここに画像の説明を入力

誰もそれを行う方法を知っていますか?ありがとうございました!

回答:

回答№1は0

私は同様の問題がありました。中国語を保存できるテキストに変換する必要があります SlugField.
含める unidecode そしてオプションで slugify

from unidecode import unidecode
from django.template.defaultfilters import slugify

そして、保存を次のように上書きします。

class ThingAdmin(admin.ModelAdmin):
model = Thing
list_display = ("name", "description",)
prepopulated_fields = {"slug": ("name",)}

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

また確認する必要があります slug 常に一意になりますが、コードには表示されません。
名前をデコードします 투자 このナメクジに tuja