我想在空白字段中生成自动随机数,同时将其保存在django中。
修改
随机数必须是唯一的。
答案 0 :(得分:14)
编辑:更改解决方案以使随机数唯一并使用Django的make_random_password
功能。请注意,下面假设您将随机数存储在名为
的字段中 模型UserProfile中的temp_password,它是User模型的扩展名。
random_number = User.objects.make_random_password(length=10, allowed_chars='123456789')
while User.objects.filter(userprofile__temp_password=random_number):
random_number = User.objects.make_random_password(length=10, allowed_chars='123456789')
另请注意,您也可以将随机代码存储为字母和数字的组合。
allowed_chars的默认值是一个字母和数字的字符串减去一些容易导致
的字母和数字用户之间的混淆(1,l等)
有关Django的make_random_password函数的更多信息: https://docs.djangoproject.com/en/dev/topics/auth/#manager-functions
OLD:
import random
n = random.randint(a,b) # returns a random integer
在上面的示例中< = n< = b
随机类中有更多类型的随机数: http://docs.python.org/library/random.html
答案 1 :(得分:2)
它比django更像是一种蟒蛇的东西。
您可以找到有关随机课here
的所有信息 祝你好运!答案 2 :(得分:1)
简单来说,我在python中通过random.randint做了一个随机数。然后因为我需要唯一号码,所以我查询这个号码到数据库,如果这个号码已经存在,那么我通过while循环再次随机。
random_num = random.randint(2345678909800, 9923456789000)
uniqe_confirm = Order.objects.filter(order_id=random_num)
while uniqe_confirm:
random_num = random.randint(2345678909800, 9923456789000)
if not Order.objects.filter(order_id=random_num):
break