Я хочу автоматически создать slug в admin с помощью pre_save signal
(при заполнении имени модели), но у меня следующая ошибка: Не удается определить язык для данного текста «Notebook 9 Pro».
Я знаю, что можно сделать с prepopulated_fields
, но мне нужен метод с сигналом pre_save.Thx.
models.py
class Product(models.Model):
title = models.CharField(max_length=120)
slug = models.SlugField(blank=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('product_detail', kwargs={'product_slug': self.slug})
def pre_save_product_slug(sender, instance, *args, **kwargs):
if not instance.slug:
slug = slugify(translit(str(instance.title), reversed=True))
instance.slug = slug
pre_save.connect(pre_save_product_slug, sender=Product)
Traceback
/media/m0nte-cr1st0/43338d5a-aa90-411c-a6d7-96964c46e415/m0nte-cr1st0/programming/django_projects/djangoshop/ecomapp/models.py in pre_save_product_slug
slug = slugify(translit(str(instance.title), reversed=True)) ...
▶ Local vars
/media/m0nte-cr1st0/43338d5a-aa90-411c-a6d7-96964c46e415/m0nte-cr1st0/programming/django_projects/myvenv/lib/python3.5/site-packages/transliterate/utils.py in translit
language_code = detect_language(value, fail_silently=False) ...
▶ Local vars
/media/m0nte-cr1st0/43338d5a-aa90-411c-a6d7-96964c46e415/m0nte-cr1st0/programming/django_projects/myvenv/lib/python3.5/site-packages/transliterate/utils.py in detect_language
_("""Can't detect language for the text "%s" given.""") % text ...
▶ Local vars
Я получаю ошибку, если я 'м ввод английских букв.Если я ввожу русские символы, слаг не переводит их на английский.
Мне нужен слаг для формирования URL.