Можете подсказать почему не работает, плз.
Первый метод нужен для того, чтобы если заголовки одинаковые, то добавляется id.
Второй переводит на английский title.
Если делать всё по отдельности то заработает.
def create_slug(instance, new_slug=None):
slug = instance.title
if new_slug is not None:
slug = new_slug
qs = Post.objects.filter(slug=slug).order_by("-id")
exists = qs.exists()
if exists:
new_slug = "%s-%s" %(slug, qs.first().id)
return create_slug(instance, new_slug=new_slug)
return slug
def set_post_slug(sender, instance, *args, **kwargs):
from pytils import translit
instance.slug = translit.slugify(create_slug(instance))
pre_save.connect(set_post_slug, sender=Post)