Django自定义用户模型未显示在管理员页面的“身份验证和授权”下

2024-09-27 22:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

几个小时来,我一直在试图弄明白这一点,但我感到很失落。我是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文件的一个片段,我在其中添加了AUTH\u USER\u模型

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'

]


Tags: django代码用户from模型importauthyour
1条回答
网友
1楼 · 发布于 2024-09-27 22:22:03

您不应将自定义用户命名为modeluser。它将导致您正在扩展的基本用户模型出现问题

需要注意的重要一点是,如果您使用的是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_模型,除非您从头开始创建用户模型,否则这是不必要的

相关问题 更多 >

    热门问题