保存时自动递增冲突的段

时间:2019-10-05 02:36:19

标签: python django

我需要博客文章的标签在每个用户的基础上是唯一的。当用户在Django项目中保存新帖子时,我希望它检查该条是否存在,如果存在,则在其末尾添加-1。

执行此操作的最佳方法是什么?我在下面添加了我的代码,该代码始终添加-1,并且我确信有更好的方法可以做到这一点

class Post(models.Model):
  ...

  def save(self, *args, **kwargs):
    posts = Post.objects.filter(user=self.user, slug=self.slug)
    if self not in posts:
      self.slug = self.slug + '-1'
    super(Post, self).save(*args, **kwargs)

1 个答案:

答案 0 :(得分:0)

我发现this snippet非常有用。

与您的主要区别在于,它使用while语句检查/ blog-title-1 /是否存在,如果不存在,则尝试/ blog-title-2 /等,直到找到可用的段