在我的Django项目中,我想从标题创建slug字段。
例如:
title = Arduino UNO
slug = arduino-uno
如果我的数据库中存在slug字段,那么我想附加一个数字
例如:
arduino-uno2
这是slug生成器逻辑的标题:
def create_slug(title):
qs = IndividualProduct.objects.filter(slug=title)
if qs.exists():
title = title + str(qs.last().id)
create_slug(title)
else:
return title
def slug_generator_for_image_folder(sender, instance, *args, **kwargs):
if instance.slug == None:
title = slugify(instance.title)
instance.slug = create_slug(title)
instance.save()
else:
pass
pre_save.connect(slug_generator_for_image_folder, sender=IndividualProduct)
但是如果我想添加一个数字,那么这段代码超过了最大递归限制。
如果我从
更改代码if qs.exists():
.....
else:
return title
到
if qs.exists():
.....
return title
然后它完美运作。
我已经将这两个代码都尝试到python shell中,并且它运行良好。
我不明白为什么它不能用于我的Django模型。