如何在Django 1.9中设置“简单”的密码

17
python manage.py createsuperuser --username admin

之后它会提示输入密码,当我输入"admin"时,我收到以下信息:

密码太短,必须至少包含8个字符。 这个密码太常见了。

我在以前的Django版本中没有看到过这个。

2个回答

26

通过将 django.contrib.auth.password_validation.CommonPasswordValidator 移除,来优化你的 AUTH_PASSWORD_VALIDATORS 设置。

密码验证 是 Django 1.9 中引入的一个新功能。


1
是否有可能仅针对“超级用户”删除此设置?为了测试的简便性。 - ig-melnyk
2
你可以(而且我认为应该)在本地开发和生产环境中使用不同的设置。如果你已经这样做了,那么很容易,在你的开发环境设置中清空AUTH_PASSWORD_VALIDATORS即可。 - Alex Morozov

4

Django 1.9引入了密码验证器(password validators),这就是你所看到的,你可以在settings.py中禁用它们,但这样做并不是明智之举。

你应该听从建议,设置更强的密码!

请参阅有关密码验证(Password Validation)的文档。

如果你真的想绕过此功能,可以在shell中(或编写自己的管理命令(management command))完成,但我不建议这样做(详见上文)。

from django.contrib.auth.models import User
User.objects.create_superuser('name', 'email', 'password')

5
但我发现asdf是一个非常适合开发目的的密码,这正是我禁用它的原因。我同意验证器应该在生产环境中启用,但对于开发(特别是我的个人本地数据库)来说呢?没有理由。 - OozeMeister
1
仍然不清楚如何在shell中跳过验证。python manage.py changepassword --help没有这样的开关。 - ilya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接