我试图从AbstractUSer继承我的models.py看起来像:
class MyUser(AbstractUser):
created = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username',]
MyUser._meta.get_field_by_name('email')[0]._unique=True
现在通过将电子邮件声明为唯一字段和用户名作为必填字段,我的超级用户已成功创建,并且正在进行正确身份验证,但我在创建任何其他用户时遇到问题,就像我通过管理页面创建任何用户一样它没有被认证。它总是返回
无
我的admin.py:
from django.contrib import admin
from credilet.models import *
admin.site.register(MyUser)
我在想的是没有正确调用create_user,好像我在管理页面中看到密码没有被哈希,这意味着没有正确调用create_user。有人请帮助它,或者即使你有关于abstractuser的正确文档
不是abstractbaseuser
所以请在解决方案中向我推荐。
谢谢
答案 0 :(得分:0)
如果要更改身份验证系统,则必须使用AbstractBaseUser, look at this full example
AbstractUser可以Extend Django’s default User。
答案 1 :(得分:0)
我认为您应该将UserAdmin
添加到Myuser的admin.py中
如果您不添加UserAdmin
,则无法使用django对密码进行哈希处理:
from django.contrib import admin
from credilet.models import *
from django.contrib.auth.admin import UserAdmin
admin.site.register(MyUser, UserAdmin) # add UserAdmin