Почему моя функция сохранения экземпляра модели, срабатывающая по сигналу, не сохраняет его?

Я пытаюсь разобраться в DJango, и создаю простой сайт-блог. Есть модель под названием BlogPost:

class BlogPost(models.Model):
    slug = None
    title = models.CharField(max_length = 100)
    content = models.TextField('Page Content')
    upload_date = models.DateField(auto_now = True)

Обычно, когда есть посты в блоге, посты имеют ссылки, которые не заканчиваются на None, но у меня такая модель, потому что я хочу, чтобы мой сайт автоматически генерировал slug на основе заголовка поста с помощью следующей сигнально-триггерной функции:

@receiver(signals.post_save,sender = BlogPost)
def set_slug(sender,instance,**kwargs):
    if instance.slug:
        return
    instance.slug = parse.quote(instance.title)
    instance.save()

При сохранении нового экземпляра модели на сайте администратора оператор if должен изменить .slug на URL-кодированную версию заголовка поста, но когда я проверяю значение .slug, оно всегда None.

Почему?

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