Почему модуль Python Secrets продолжает генерировать одни и те же пароли в этой функции в Django [закрыто]

Вот функция:

def generate_password():
    alphabet = string.ascii_letters + string.digits + "!@#$%^&*()+=/.,"
    return ''.join(secrets.choice(alphabet) for i in range(12))

Я добавил эту функцию в модель Django, чтобы она автоматически вызывалась при создании пользователя и автоматически генерировала его пароль. Вот код в модели:

password = models.CharField(max_length=100, default=generate_password())

По какой-то причине создание 4 пользователей всегда приводит к созданию как минимум одного дублирующего пароля, а то и двух.

вот пример паролей, сгенерированных при создании 7 пользователей:

PpN(ky^tabgP
. iIS@4gfe@7sc
6#oNlIH0MbQg
6#oNlIH0MbQg
iIS@4gfe@7sc
PpN(ky^tabgP
PpN(ky^tabgP

Такой подход предлагали разные люди и документация, однако кажется, что эта функция постоянно циклически переключается между несколькими паролями и постоянно повторяет их.

Может ли кто-нибудь помочь мне понять, почему и как этого избежать?

Django нужно перезапускать несколько раз, поэтому добавлять пароли в набор не очень удобно.

Вернуться на верх