gpt4 book ai didi

python - 在 Django 模型自定义保存中使用唯一 ID

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:06 27 4
gpt4 key购买 nike

我正在尝试根据人名创建独特的 slug,这些名字会有明显的重复。我的想法是将 id 添加到 slug 作为唯一标识符。问题是在保存完成之前不会生成唯一 ID。

这是我尝试过的:

def save(self, *args, **kwargs):

if getattr(self, 'name', True):

if not self.pk:
matching_slugs = Entity.objects.filter(slug=slugify(self.name))
print matching_slugs
if len(matching_slugs) > 0:
self.slug=slugify(self.name+' temp')
elif len(matching_slugs) == 0:
self.slug=slugify(self.name)
super(Entity, self).save(*args, **kwargs)
self.slug=slugify(self.name+' '+str(self.id))
self.save()

我得到错误:

maximum recursion depth exceeded in cmp

我认为这不是最好的方法。

如何使名称在保存时唯一?

最佳答案

也许你可以使用简单的构造?:

import uuid


def save(self, *args, **kwargs):
if not self.slug:
self.slug = "%s.%s" % (self.name , uuid.uuid4())
super(Entity, self).save(*args, **kwargs)

关于python - 在 Django 模型自定义保存中使用唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456797/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com