【问题标题】:Django custom user model doesn't show up under Authentication and Authorization in the admin pageDjango 自定义用户模型未显示在管理页面的身份验证和授权下
【发布时间】:2020-06-02 20:17:10
【问题描述】:

我已经尝试了几个小时来解决这个问题,但我感到很迷茫。我是 django 的新手,并尝试创建自定义用户模型。我的困难是我的用户模型不会显示在管理页面的身份验证和授权部分下。 Admin page pic

这是我的模型代码

from django.db import models
from django.contrib.auth.models import  AbstractUser

# Create your models here.
class User(AbstractUser):
    first_name = models.TextField(max_length = 300)
    last_name = models.TextField(max_length = 300)

这是我的 admin.py 文件的代码

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from orders.models import User
# Register your models here.
admin.site.register(User,UserAdmin)

这是我的 settings.py 文件的 sn-p,我在其中添加了 AUTH_USER_MODEL

AUTH_USER_MODEL='orders.User'
# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'orders'

]

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。我找到了可以添加 class Meta: app_label = 'auth' 的解决方案,但随后我得到了一个 ImproperlyConfigured 错误。
  • 嘿!你是怎么解决这个问题的?我也有同样的问题。

标签: python django


【解决方案1】:

您不应将自定义用户模型命名为 User。它将与您正在扩展的基本 User 模型产生问题。

需要注意的重要一点是,如果您使用的是 AbstractUser,那么如果您不打算对它们执行任何特殊操作,则无需覆盖用户名、名字和姓氏字段,因为它们已经实现。

您重构的用户模型:

from django.contrib.auth import models

class MyUser(models.AbstractUser):
    # Fields that you are not obliged to implement
    # username = models.CharField(max_length=100)
    # first_name = models.CharField(max_length=100)
    # last_name = models.CharField(max_length=100)
    groups = None
    user_permissions = None

    def __str__(self):
        return self.username

用户管理员:

@admin.register(MyUser)
class MyUserAdmin(admin.ModelAdmin):
    list_display = ['username']

或者,

admin.site.register(MyUser, MyUserAdmin)

在 settings.py 中,您可以取出 AUTH_USER_MODEL,这不是必需的,除非您从头开始创建用户模型。

【讨论】:

  • 嗨!我已将自定义用户模型的名称更改为“配置文件”,其余的就像您写的一样,但我也遇到了同样的问题。还有其他建议吗?
  • 您确定您的模型注册正确吗?
猜你喜欢
  • 2021-10-11
  • 2019-01-05
  • 2016-07-14
  • 2022-01-16
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 2016-10-02
  • 2021-01-09
相关资源
最近更新 更多