Администратор Django не позволяет сохранять слаги юникода

Я пытаюсь сохранить персидского слизняка для этой модели:

class Category(models.Model):
    name = models.CharField('name', max_length=100)
    slug = models.SlugField('slug', unique=True)
    description = models.TextField('description')

    class Meta:
        verbose_name = 'category'
        verbose_name_plural = 'categories'

    @permalink
    def get_absolute_url(self):
        return ('category_detail', None, {
            'slug': self.slug
        })

    def __unicode__(self):
        return u'%s' % self.name

Но Django не сохраняет страницу и жалуется, что:

Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens

Я также пытался использовать этот метод сохранения вместо этого

    def save(self, *args, **kwargs):
      self.name = slugify_unicode(self.name)
      super(Category, self).save(*args, **kwargs)

но это не решило проблему. Так что я понял это и ценю вашу помощь, чтобы решить эту проблему.


person qliq    schedule 29.01.2014    source источник
comment
но какое значение вы пытаетесь сохранить?   -  person lalo    schedule 29.01.2014


Ответы (1)


Вы не можете. Поля Slug могут содержать только буквы ASCII, цифры, дефисы и подчеркивания.

Если вы должны использовать символы, отличные от ASCII, в поле типа slug, вы можете использовать обычный CharField и добавить к нему db_index = True.

person Tiago    schedule 29.01.2014