Специальные символы в поле Auto Slug

Я пытаюсь найти решение проблемы, с которой я сталкиваюсь при использовании prepopulated_fields. Я использую эту функцию для создания slug на основе введенного названия. Однако если я вставляю в заголовок специальные символы (+, - и т. д.), слизняк не может их перехватить. Есть ли у вас идеи, как сделать так, чтобы эти специальные символы читались, и чтобы slug соответствовал заголовку? Пример:

Название | Samsung Galaxy S24+

Слизняк (должен стать)| samsung-galaxy-s24+ или что-то подобное

Вот мой текущий код:

models.py

class Post(models.Model):
    titolo = models.CharField(max_length=255)
    descrizione = RichTextUploadingField('Text', config_name='default', blank=True, null=True)
    slug = models.SlugField(unique=True)

admin.py

class PostAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('titolo',)}

Slug - газетный термин, представляющий собой краткое обозначение чего-либо, содержащее только буквы, цифры, подчеркивания или дефисы. Он не содержит никаких других специальных символов. Если вы используете поле SlugField, обратите внимание, что оно должно следовать этому соглашению. Если вам нужны специальные символы, вы можете использовать CharField в своих URL-адресах.

slugfield использует slugfy, а slugfy не использует +. Если вы используете +, вы можете использовать charfield и создать собственный slug.

Вернуться на верх