Slug не генерируется автоматически после добавления страницы в django

Я пытался добавить страницу для постов блога статьи для моего django сайта. Но модель slug не автогенерируется после добавления его на страницу добавления поста, но он хорошо работает на странице администратора.

пример в поле title когда я набираю how to master python fastly он автоматически генерируется в поле slug с "-" только на странице администратора, но когда я набираю то же самое на странице добавления поста он не генерирует slug автоматически.

mycode

models.py

from django.db import models
from django.contrib.auth.models import User
from django_summernote.fields import SummernoteTextField
from django.urls import reverse
from django.template.defaultfilters import slugify

STATUS = (
    (0,"Draft"),
    (1,"Publish")
)
 
class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    title_type = models.CharField(max_length=50, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    updated_on = models.DateTimeField(auto_now= True)
    content = SummernoteTextField(blank=True, null=True)
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)
    image = models.ImageField(upload_to='images',null=True, blank=True)


    class Meta:
        ordering = ['-created_on']

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(Post, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('home')

views.py

class AddPostView(CreateView):
    model = Post
    form_class = PostForm
    template_name = 'add_post.html'

страница администратора enter image description here

И добавьте страницу поста enter image description here

Поле slug не должно быть редактируемым, удалите поле 'slug' из полей AddPostView и Admin.

class AddPostView(CreateView):
    model = Post
    fields = ['title', 'title_type', 'author', 'updated_on', 'content', 
              'created_on', 'status', 'image']
    form_class = PostForm
    template_name = 'add_post.html'
Вернуться на верх