我正在为项目创建一个跟踪应用程序,其中每个项目都有一个或多个组。我想添加一个字母数字字符串作为组的唯一标识符(类似于主键)。我知道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")
答案 0 :(得分:0)
Django具有用于生成随机字符串get_random_string
的辅助函数,它的用法很简单,传递要使用的宪章的长度和清单
from django.utils.crypto import get_random_string
get_random_string(10, 'abcdef0123456789')
但是,此方法不授予唯一值,随着时间的流逝,您可能会得到相同的随机字符串,您应该对照数据库检查生成的随机标识符是否已经存在