How to create a unique slug in Django

后端 未结 12 535
栀梦
栀梦 2020-12-04 22:17

I am trying to create a unique slug in Django so that I can access a post via a url like this: http://www.example.com/buy-a-new-bike_Boston-MA-02111_2

The relevant m

12条回答
  •  眼角桃花
    2020-12-04 22:50

    just try to slug a unique values together , for example : i am going to slugfy time,username,ticket_subject together and save it as a slug, like the following :

    from django.utils.text import slugify 
    from datetime import datetime
    
    
    time_now = datetime.now().strftime('%Y-%m-%d_%H:%M:%S')
    class ticket(models.Model):
        TKT_USER = models.ForeignKey(User, related_name='TKT_USER', on_delete=models.CASCADE)
        TKT_SUB = models.CharField(max_length=20, db_index=True, verbose_name="ticket subject")
        TKT_BOD = models.TextField(verbose_name="ticket body")
        TKT_SLug = models.SlugField(blank=True, null=True, db_index=True, unique=True)
    
    
    
        def save(self , *args , **kwargs):
             if not self.TKT_SLug:
                data_to_slug = f"{time_now}_{self.TKT_USER}_{self.TKT_SUB}"
                self.TKT_SLug = slugify(data_to_slug)
                super(ticket , self).save(*args, **kwargs)
    

提交回复
热议问题