Python 段塞字段递归错误

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.

在我的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.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次还是一个更复杂的调用堆栈