这是我的在models.py中生成代码的代码,
def save(self):
self.slug = slugify(self.title)
super(Post, self).save()
我要检查数据库中是否已存在该子段,然后仅将ID添加到该子段中。
我现在唯一想到的方法是在每个子段中添加ID
def save(self):
super(Post, self).save()
if not self.slug:
self.slug = slugify(self.title) + "-" + str(self.id)
self.save()
问题是,它在所有子弹中添加了id。
那么我该如何检查由于相同的标题而导致的子弹不存在,然后仅将ID添加到新的子弹中?
答案 0 :(得分:4)
您可以检查是否存在已存在子弹的帖子,然后可以向该子弹添加ID。
def save(self):
# calling super so that the instance will get created and self.id will be accessible.
super(Post, self).save()
if not self.slug:
slug = slugify(self.title)
try:
post_obj = Post.objects.get(slug=slug)
slug += "-" + str(self.id)
except Post.DoesNotExist:
pass
self.slug = slug
self.save()
尽管此代码将起作用。但是我更喜欢在Post / Pre Save Singal模型中保留创建子弹的逻辑。