Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何添加存储在模型中的唯一随机生成的6位密钥_Python_Python 3.x_Django_Database_Django Models - Fatal编程技术网

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。