在Django中生成唯一的字母数字标识符

2024-04-26 18:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为每个项目创建一个跟踪应用程序,其中每个项目将有一个或多个组。我想添加一个字母数字字符串作为组的唯一标识符(类似于主键)。我知道UUID,但它是一个长字符串,我正在寻找10-15个字符长

你能帮我生成一个唯一的字符串吗

我希望字段“project_groupid”作为唯一标识符

Models.py

class project(models.Model):
    project_name = models.CharField(max_length=130,default="")
    project_customer = models.ForeignKey(customerOrganization, on_delete=models.CASCADE)

class project_target(models.Model):
    project = models.ForeignKey(project, on_delete=models.CASCADE)
    project_groupid = models.CharField(max_length=20,default="")
    group_name = models.CharField(max_length=100,default="")
    group_country = models.CharField(max_length=3,default="US")
    group_language = models.CharField(max_length=3,default="en")

Tags: 项目字符串nameprojectdefaultmodelmodelsgroup
1条回答
网友
1楼 · 发布于 2024-04-26 18:04:03

Django有一个用于生成随机字符串的助手函数get_random_string,它的用法很简单,传递要使用的证书的长度和列表

from django.utils.crypto import get_random_string
get_random_string(10, 'abcdef0123456789')

但是,此方法不会授予唯一值,随着时间的推移,您可能会得到相同的随机字符串,您应该对照数据库检查生成的随机标识符是否已经存在

相关问题 更多 >