Django Autoslug raise ValueError("Cannot serialize function: lambda")
Я пытаюсь создать пользовательский slug для записи в блоге и использую django AutoSlug для автоматической генерации slug, но получаю эту ошибку.
raise ValueError("Cannot serialize function: lambda")
ValueError: Cannot serialize function: lambda
Это моя models.py
from autoslug import AutoSlugField
class Blog(models.Model):
....
category = models.ForeignKey(Category,
on_delete=models.CharField, null=True,
blank=True)
tag = models.ManyToManyField(Tag, blank=True)
title = models.CharField(max_length=255)
pub_date = models.DateTimeField(auto_now_add=True)
slug = AutoSlugField(populate_from=lambda instance:
instance.title,
unique_with=['category', 'tag',
'pub_date__month'],
slugify=lambda value:
value.replace(' ', '-'),
null=True
)
.....
Я использовал пример, приведенный в документации, но все равно получаю ошибку. Я знаю, что это также можно сделать, как показано ниже в самой простой форме
slug = AutoSlugField(populate_from='title')
Я решил эту проблему, создав функцию следующим образом в моем models,py
def custom_slugify(value):
return slugify(value).replace(' ', '_')
затем назовите его в поле slug следующим образом
slug = AutoSlugField(populate_from='title',
unique_with=['category', 'tag', 'pub_date__month'],
slugify=custom_slugify,
null=True
)