如何在django中根据文章标题生成slug?

ijxebb2r  于 2023-01-03  发布在  Go
关注(0)|答案(1)|浏览(151)

我正在做一个项目,我想根据每个帖子的标题为每个帖子创建一个slug。有没有可能生成一个slug,使它对帖子来说是唯一的,但即使帖子的标题改变了也不会改变?我使用的是文件“model.py”中提供的模型。你能提供如何完成这个任务的指导吗?

class Post(models.Model):

    
    username = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
    description = models.CharField(('Description'),max_length=250)
    title = models.CharField(('Content Title'), max_length=250)
    create_date = models.DateTimeField(default = timezone.now)
    image_data = models.ImageField(upload_to='User_Posts', height_field=None, width_field=None, max_length=None)
    slug = (title)

    def __str__(self):
        return self.title
fbcarpbf

fbcarpbf1#

我建议查看Django文档中的slugify,你需要重写模型的保存方法,所以你的新代码很可能是这样的:

from django.utils.text import slugify
slug=models.SlugField()

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

我会记住一个独特的参数,你可以在你的slugfield中设置为true或false。

相关问题