Django AbstractUser无法正常工作

时间:2014-02-10 08:08:30

标签: django django-models models django-users

我试图从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

所以请在解决方案中向我推荐。

谢谢

2 个答案:

答案 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