我想要在数据库级别生成一个唯一的字段。 unique=True 的工作方式是,如果它在数据库中看到重复值,则会引发错误。但我不希望这样,我希望它只是生成一个新的唯一编号而不是引发错误。
这是为用户提供帐号的模型,任何帮助将不胜感激
class Account(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
account_number = ShortUUIDField(unique=True,length=10, max_length=25, prefix="217", alphabet="1234567890")
您可以尝试导入 uuid 并在 account_number 字段中更改
default=uuid.uuid4
并删除此代码length=10, max_length=25, prefix="217", alphabet="1234567890"
可能看起来像这样
account_number = ShortUUIDField(unique=True, default=uuid.uuid4)
或
将字段更改为
models.CharField(max_length=255, default=DEFINITIONNAME, unique=True)
并创建返回账号的定义 但在这里您还需要创建某种验证器来检查帐号是否存在