是否可以定义CustomUser并仍然使用标准管理屏幕?

时间:2015-11-13 20:25:34

标签: django

关于同一主题的几个不同问题:

我已经为以下内容定义了一个新的CustomUser类,它只是默认UserClass的扩展。

class customUser(AbstractBaseUser):
    email = models.EmailField(verbose_name='email address', max_length=255, unique=True)
    first_name = models.CharField(max_length=50, null=True)
    middle_name = models.CharField(max_length=50, null=True)
    last_name = models.CharField(max_length=50, null=True)
    date_of_birth = models.DateField(null=True)
    Primary_address = models.CharField(max_length=50, null=True)
    Primary_address_zipcode = models.CharField(max_length=5, null=True)
    is_active = models.BooleanField(default=False)
    is_admin = models.BooleanField(default=False)

问题1:是否可以继承默认UserClass的属性(如first_name和last_name,last_login,first_created)而无需在我的新CustomUser类中重新定义?

问题2:是否可以使用现有的用户默认页面并稍微修改它以适合我的CustomUser?我问,因为默认的管理页面有我想要使用的好的Group控件,last_login和first_created字段,我不希望"再现"同一页面。将CustomUser中定义的额外字段添加到默认管理页面的Person Info部分会很不错。

Default Admin User page

1 个答案:

答案 0 :(得分:0)

是。您将要使用AbstractUser代替AbstractBaseUser

详情请见:

https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#extending-django-s-default-user

它在数据库中创建了一个不同的表(不是auth_user),但仍然完全优雅地扩展到Django Admin。