保存时自动递增冲突的子弹

问题描述 投票:0回答:1

我需要博客帖子的标签在每个用户的基础上都是唯一的。当用户在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)
python django
1个回答
0
投票

我发现this snippet非常有用。

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

© www.soinside.com 2019 - 2024. All rights reserved.