Python 如何添加存储在模型中的唯一随机生成的6位密钥
我需要数据库中的每个模型都有一个唯一的六位数键。比如说,Python 如何添加存储在模型中的唯一随机生成的6位密钥,python,python-3.x,django,database,django-models,Python,Python 3.x,Django,Database,Django Models,我需要数据库中的每个模型都有一个唯一的六位数键。比如说, class Quiz(models.Model): name=models.CharField(max_length=250) randomly_generated_id=models.RandomField() #how do I generate a random key here? 只需使用models.CharField()并将默认值绑定到随机生成器 import random import string de
class Quiz(models.Model):
name=models.CharField(max_length=250)
randomly_generated_id=models.RandomField() #how do I generate a random key here?
只需使用
models.CharField()
并将默认值绑定到随机生成器
import random
import string
def key_generator():
key = ''.join(random.choice(string.digits) for x in range(6))
if Quiz.objects.filter(randomly_generate_id=key).exists():
key = key_generator()
return key
class Quiz(models.Model):
name = models.CharField(max_length=250)
randomly_generated_id = models.CharField(max_length=6, default=key_generator, unique=True, editable=False)
但是,除非您有特定的理由生成一个6位数的密钥,否则我建议您使用通用标识符。这将特别避免检查随机生成的密钥是否已被使用的开销
import uuid
class Quiz(models.Model):
name=models.CharField(max_length=250)
randomly_generated_id = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
只需使用
models.CharField()
并将默认值绑定到随机生成器
import random
import string
def key_generator():
key = ''.join(random.choice(string.digits) for x in range(6))
if Quiz.objects.filter(randomly_generate_id=key).exists():
key = key_generator()
return key
class Quiz(models.Model):
name = models.CharField(max_length=250)
randomly_generated_id = models.CharField(max_length=6, default=key_generator, unique=True, editable=False)
但是,除非您有特定的理由生成一个6位数的密钥,否则我建议您使用通用标识符。这将特别避免检查随机生成的密钥是否已被使用的开销
import uuid
class Quiz(models.Model):
name=models.CharField(max_length=250)
randomly_generated_id = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
是否要为特定字段生成随机场或随机键值?是否要为特定字段生成随机场或随机键值?或者,它们确实需要是随机的,还是唯一的?从100000开始,递增1。或者,它们真的需要是随机的,还是唯一的?从100000开始,递增1。