它在管理站点上工作得很好。但是下面的代码在某些语言中不能正常工作(缺少一些字符,比如土耳其语的"ı")。
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)例如,让我们假设它的名称是"ışçğö“,然后slug变成了"scgo”,而它应该是"iscgo“。
发布于 2010-08-03 21:19:59
根据定义,这是SlugField行为。插件应该是URL的一部分。尽管URL可能支持非拉丁字符,但在slugs中不支持这些字符。
Slug是报纸上的一个术语。slug是某物的短标签,仅包含字母、数字、下划线或连字符。它们通常用在URL中。
你得到的结果与Django的行为不一致:
>>> from django.template.defaultfilters import slugify
>>> v = u"ışçğö"
>>> slugify(v)
u'isg'你到底是从哪里得到这些结果的?
发布于 2010-08-05 09:43:37
尝试使用slughifi函数以获得更好的插件功能(感谢Markus向我展示了这一点)。
https://stackoverflow.com/questions/3396809
复制相似问题