Python 段塞字段递归错误
在我的Django项目中,我想从标题创建slug字段 例如:Python 段塞字段递归错误,python,django,python-3.x,django-models,slug,Python,Django,Python 3.x,Django Models,Slug,在我的Django项目中,我想从标题创建slug字段 例如: title = Arduino UNO slug = arduino-uno arduino-uno2 如果slug字段存在于我的数据库中,那么我想附加一个数字 例如: title = Arduino UNO slug = arduino-uno arduino-uno2 以下是段塞发生器逻辑的标题: def create_slug(title): qs = IndividualProduct.objects.
title = Arduino UNO
slug = arduino-uno
arduino-uno2
如果slug字段存在于我的数据库中,那么我想附加一个数字
例如:
title = Arduino UNO
slug = arduino-uno
arduino-uno2
以下是段塞发生器逻辑的标题:
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
到
然后它就完美地工作了
我已经在python shell中尝试了这两个代码,它工作得非常好
我不明白为什么它不能在我的Django模型中工作。你不明白为什么它在现有代码中返回
None
,但在更改后返回其他值,或者你不明白为什么返回None
会导致无限递归?为什么它会导致无限递归?你能给我们一个经过编辑的回溯吗,或者至少告诉我们它是被连续调用998次还是一个更复杂的调用堆栈