我需要博客文章的标签在每个用户的基础上是唯一的。当用户在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)
答案 0 :(得分:0)
我发现this snippet非常有用。
与您的主要区别在于,它使用while
语句检查/ blog-title-1 /是否存在,如果不存在,则尝试/ blog-title-2 /等,直到找到可用的段