扩展用户但仍然使用默认的Django管理员

时间:2015-11-14 16:43:16

标签: python django django-models django-admin

我是编程Django的新手,所以我不确定这是否可行。

我创建了一个新的CustomUser类:

class CustomUser(AbstractBaseUser):
    email = models.EmailField(verbose_name='email address', max_length=255, unique=True)
    mobile = models.CharField(max_length=30, null=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)
    date_joined = models.DateTimeField(default=timezone.now)

几个问题:

问题1:我重新定义了默认用户类中存在的一些字段(例如,名字,姓氏,加入日期)。但是,我没有定义Last_login。但是last_login仍然显示为管理页面中的一列。但如果我没有在我的新CustomUser中定义加入名字,姓氏和日期,我会收到错误,并且不会显示在管理页面中。为什么上次登录特别?

问题2:默认管理页面具有很好的用于组和权限控制的UI。是否可以定义我的CustomerUser并仍然使用/启用默认管理页面?

enter image description here

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 您不需要定义django中已存在的所有这些字段。不要重新发明轮子。你遇到了什么错误?回溯?

  2. 使用自定义用户模型与使用默认管理页面无关。无论您使用哪种型号,都可以随时使用django管理页面。或者我不明白你真正想要达到的目标。