【发布时间】:2021-08-18 04:08:49
【问题描述】:
这是我在user 应用中的模型
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
class UserTable(AbstractBaseUser, PermissionsMixin):
USERNAME_FIELD='email'
objects = UserManager()
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
phone = models.CharField(max_length=255, default=None)
is_active = models.BooleanField(default=False)
这是我在user 应用程序中的admin.py。
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import UserTable
admin.site.register(UserTable, UserAdmin)
我也加入了我的settings.py
INSTALLED_APPS = [
....
'user.apps.UserConfig',
....
]
这是我运行python manage.py migrate时的错误
(admin.E033) The value of 'ordering[0]' refers to 'username', which is not an attribute of 'user.UserTable'.
The value of 'list_display[0]' refers to 'username', which is not a callable, an attribute of 'UserAdmin', or an attribute or method on 'user.UserTable'.
我不知道为什么,我想当我设置username、first_name、last_name 之类的字段时,设置了objects = UserManager()。我还使用USERNAME_FIELD 设置电子邮件替换username 主键。
【问题讨论】:
-
您是否在 settings.py 中设置了
AUTH_USER_MODEL? -
不,用户名字段来自
AbstractUser来自django.contrib.auth.models.AbstractUser,而不是AbstractBaseUser
标签: python django django-models django-admin