Как генерировать случайные числа в Django - PullRequest
7 голосов
/ 15 июня 2011

Я хочу генерировать автоматические случайные числа в пустом поле при сохранении его в Django.


EDIT

Случайные числа должны быть уникальными.

Ответы [ 2 ]

14 голосов
/ 15 июня 2011

РЕДАКТИРОВАТЬ: Изменено решение, чтобы сделать случайное число уникальным и использовать функцию make_random_password Django

.Обратите внимание, что ниже предполагается, что вы храните случайное число в поле с именем

temp_password в модели UserProfile, которая является расширением модели 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')

Также обратите внимание, что вы можете сохранитьслучайный код в виде комбинации букв и цифр.Значение

по умолчанию для allow_chars представляет собой строку букв и цифр, за исключением нескольких, которые обычно вызывают

путаницу среди пользователей (1, l и т. Д.)

Подробнее оФункция 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

в приведенном выше примере a <= n <= b </p>

Еще много типов случайных чисел в случайномкласс: http://docs.python.org/library/random.html

2 голосов
/ 15 июня 2011

Это больше вещь на питоне, чем вещь на джанго.

Всю информацию о Случайном классе можно найти здесь

Удачи!

...