【问题标题】:Extending User but still use default Django admin扩展用户但仍使用默认的 Django 管理员
【发布时间】:2015-11-14 16:43:15
【问题描述】:

我是 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:默认管理页面具有出色的用户界面,用于组和权限控制。是否可以定义我的 CustomerUser 并仍然使用/启用默认管理页面?

谢谢。

【问题讨论】:

标签: python django django-models django-admin


【解决方案1】:
  1. 您不需要定义 django 中已经存在的所有这些字段。不要重新发明轮子。你遇到了什么错误?追溯?

  2. 使用您的 customuser 模型与使用默认管理页面无关。无论您拥有什么型号,您都可以随时使用 django 管理页面。或者我不明白你真正想要达到的目标。

【讨论】:

  • 1.当我注释掉名字时。尽管我从未定义过last_login,但我没有这个问题:list_display 出现以下问题:错误:'list_display[1]' 的值指的是'first_name',它不是可调用的,是'的属性CustomUserAdmin',或 'sites.CustomUser' 上的属性或方法。
  • @doniyr 2. 当我使用默认的 UserAdmin 时,所有的 Group 控件都消失了。
猜你喜欢
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 2021-09-25
  • 2017-04-26
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多