django 1.9 createsuperuser绕过密码验证检查

时间:2016-02-11 03:03:40

标签: django passwords

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

python manage.py createsuperuser

我只是想为我的本地开发环境使用一个简单的密码,就像只有一个字符,django1.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.

4 个答案:

答案 0 :(得分:10)

您可以在开发环境中更改 AUTH_PASSWORD_VALIDATORS 设置。请参阅文档:https://docs.djangoproject.com/en/1.9/topics/auth/passwords/#s-enabling-password-validation。这非常简单:您将识别导致警告消息的验证器。

答案 1 :(得分:7)

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

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

答案 2 :(得分:2)

实际上,您不需要修改验证程序设置或先创建一个复杂的密码,然后再进行更改。相反,您可以直接绕过所有密码验证器来创建简单的密码。

打开django shell

python manage.py shell

类型:

from django.contrib.auth.models import User

按Enter,然后键入(例如,使用仅由字母“ a”组成的密码):

User.objects.create_superuser('someusername', 'something@example.com', 'a')

再次点击即可完成操作。

答案 3 :(得分:0)

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

根据mimo的回答和这个article,我把脚本改成了这个

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()