Den*_*nov 5 authentication django admin
我在Django Shell中创建了用户,并尝试对其进行身份验证,但不能。那又回来了NoneType。另外,我检查is_superuser,is_stuff,is_active是否为True
>>> from django.contrib.auth.models import User
>>> from django.contrib.auth import authenticate
>>> User.objects.create(username='user', password='password', email='someemail')
>>> User.objects.all()
>>> <QuerySet [<User: admin>, <User: user>]>
>>> admin
>>> user = authenticate(username='user', password='password')
>>> user
>>> user.is_active
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'is_active'
>>> type(user)
<class 'NoneType'>
>>> admin = authenticate(username='admin', password='wa23sd54fg')
>>> admin
<User: admin>
>>> admin.is_active()
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'bool' object is not callable
>>> admin.is_active
True
>>> user = User.objects.get(pk=2)
>>> user
<User: user>
>>> user.is_active
True
>>> user.is_superuser
True
>>> user.is_staff
True
Run Code Online (Sandbox Code Playgroud)
当尝试在管理面板中使用登录时,它显示错误:
请输入员工帐户的正确用户名和密码。两个地方都要注意大小写。
您应该已经使用了该create_user方法,以便正确地对密码进行了哈希处理:
User.objects.create_user(username='user', password='password', email='someemail')
Run Code Online (Sandbox Code Playgroud)
如果您希望用户能够访问Django管理员,请进行以下设置is_staff=True:
User.objects.create_user(username='user', password='password', email='someemail', is_staff=True)
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令在Django shell中修复现有用户的密码set_password:
user = User.objects.get(username='user')
user.set_password('password')
user.is_staff = True # allow user to log in to Django admin
user.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |