Django 1.9如何创建超级用户并跳过密码验证?

13

尝试使用新的Django 1.9版本,并通过以下方式创建超级用户:

python manage.py createsuperuser

我只想在我的本地开发环境中使用一个简单的密码,比如只有一个字符,但是 Django 1.9 升级了非常严格的密码验证策略,我该如何绕过它?

Password: 
Password (again): 

This password is too short. It must contain at least 8 characters.

This password is too common.

This password is entirely numeric.

不使用弱密码作为习惯怎么样?可以使用像KeePass这样的工具来生成、存储和自动输入应用程序的密码。 - Anti-weakpasswords
把控制权交给用户,让他们决定适当的安全策略如何?KeePass不能处理我没有登录浏览器窗口的众多情况。 - Ben
4个回答

13

在使用复杂密码创建超级用户后,您可以在shell(./manage.py shell)中将其设置为更简单的密码:

from django.contrib.auth.models import User
user = User.objects.get(username='your_user')
user.set_password('simple')
user.save()

你也可以运行'./manage.py shell'或'python manage.py shell',不需要使用--。 - Qchmqs

11

4
事实上,您不需要修改验证器设置或首先创建复杂密码,然后再更改密码。相反,您可以直接创建一个简单的密码,绕过所有密码验证器。
打开django shell python manage.py shell
输入:
from django.contrib.auth.models import User 按下Enter键,然后输入(例如,使用仅由字母'a'组成的密码):
User.objects.create_superuser('someusername', 'something@example.com', 'a')
再次按Enter键,完成了。

0

mimo的答案是正确的,但如果您不使用默认的User模型,则不起作用

根据mimo的回答和这个文章,我将脚本更改为以下内容

from django.contrib.auth import get_user_model
User = get_user_model()
user = User.objects.get(email='user@mail.com')
# or user = User.objects.get(username='your_user')
user.set_password('simple')
user.save()

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