Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存时自动增加冲突段塞_Python_Django - Fatal编程技术网

Python 保存时自动增加冲突段塞

Python 保存时自动增加冲突段塞,python,django,Python,Django,我需要的博客文章鼻涕虫是唯一的每个用户的基础上。当用户在我的Django项目中保存一篇新文章时,我希望它检查slug是否存在,如果存在,则在其末尾添加一个-1 最好的方法是什么?我在下面添加了我的代码,它总是添加-1,我相信有更好的方法可以做到这一点 class Post(models.Model): ... def save(self, *args, **kwargs): posts = Post.objects.filter(user=self.user, slug=sel

我需要的博客文章鼻涕虫是唯一的每个用户的基础上。当用户在我的Django项目中保存一篇新文章时,我希望它检查slug是否存在,如果存在,则在其末尾添加一个-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)
我觉得很有用


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

当有第二个(或第三个…)重复时会发生什么情况?当前为-1-1,-1-1-1。。也不理想