Slug字段RecursionError

时间:2018-06-14 02:43:16

标签: python django python-3.x django-models slug

在我的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模型。

0 个答案:

没有答案