从管理站点完美运行。但是下面的代码在某些语言中不能正常工作(某些字符缺失,如土耳其语“ı”)。
class Foo(models.Model):
name = models.CharField(max_length=50, unique=True, db_index=True)
slug = models.SlugField(max_length=100, unique=True, db_index=True)
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.name)
super(Foo, self).save(*args, **kwargs)
例如,我们假设名称是“ışçğö”,然后当它应该是“iscgo”时,slug变为“scgo”。
答案 0 :(得分:1)
根据定义,这是SlugField
行为。 slug应该是URL的一部分。尽管URL可能支持非拉丁字符,但slugs内部不支持这些字符。
Slug是一个报纸术语。 slu is是一个 包含的东西的短标签 只有字母,数字,下划线或 连字符。 它们通常用于网址。
您获得的结果与Django行为不一致:
>>> from django.template.defaultfilters import slugify
>>> v = u"ışçğö"
>>> slugify(v)
u'isg'
你究竟在哪里得到这些结果?
答案 1 :(得分:1)