gpt4 book ai didi

python - Django 模型字段 unique=True 和 default=function

转载 作者:太空狗 更新时间:2023-10-30 01:07:31 24 4
gpt4 key购买 nike

所以我有一个看起来像这样的模型

def create_invite_code():
return str(uuid.uuid4())[0:8]

class InviteCodes(models.Model):
id = models.CharField(max_length = 36, primary_key = True, default=build_uuid)
code = models.CharField(max_length=8, unique=True, default=create_invite_code)

如果 create_invite_code 返回一个已经存在于数据库中的代码会发生什么,django 会再次调用该函数直到找到一个不存在的代码吗?还是会报错?

最佳答案

模型 InviteCodes 中的代码字段是一个唯一字段。如果您尝试使用已经存在的代码创建另一个条目,则 python 将引发 IntegrityError: UNIQUE constraint failed 异常。

您可以通过从 create_invite_code 函数返回一个常量字符串来测试它。例如,

def create_invite_code():
return 'test'

第一个条目将是唯一的,但在第二个调用中将引发异常。

关于python - Django 模型字段 unique=True 和 default=function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30520783/

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