我无法登录 django 中的管理站点
I can't log in to admin site in django
我目前在 Django 中使用自定义用户模型。创建用户模型并迁移到数据库后,我们创建了超级用户帐户和 运行 服务器。但是进入管理页面后,我输入了正确的信息,却无法登录,请问是什么原因?这是我的代码
models.py
class UserManager(BaseUserManager):
use_in_migrations = True
def create_user(self, email, profile, nickname, password):
user = self.model(
email=self.normalize_email(email),
nickname=nickname,
profile=profile,
)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, nickname, profile):
user = self.create_user(
email=self.normalize_email(email),
password=password,
nickname=nickname,
profile=profile,
)
user.staff = True
user.admin = True
user.save()
return user
class User(AbstractBaseUser, PermissionsMixin):
username = None
email = models.EmailField(_('email address'), unique=True)
nickname = models.CharField(max_length=10)
profile = models.ImageField(default='default_image.jpeg')
is_staff = models.BooleanField(_('staff status'),default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['nickname', 'profile']
admin.py
from django.contrib import admin
from .models import User
admin.site.register(User)
行 user.staff = True 应该是 user.is_staff = True
我认为您还需要在其下方添加 user.is_superuser = True。
我目前在 Django 中使用自定义用户模型。创建用户模型并迁移到数据库后,我们创建了超级用户帐户和 运行 服务器。但是进入管理页面后,我输入了正确的信息,却无法登录,请问是什么原因?这是我的代码
models.py
class UserManager(BaseUserManager):
use_in_migrations = True
def create_user(self, email, profile, nickname, password):
user = self.model(
email=self.normalize_email(email),
nickname=nickname,
profile=profile,
)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, nickname, profile):
user = self.create_user(
email=self.normalize_email(email),
password=password,
nickname=nickname,
profile=profile,
)
user.staff = True
user.admin = True
user.save()
return user
class User(AbstractBaseUser, PermissionsMixin):
username = None
email = models.EmailField(_('email address'), unique=True)
nickname = models.CharField(max_length=10)
profile = models.ImageField(default='default_image.jpeg')
is_staff = models.BooleanField(_('staff status'),default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['nickname', 'profile']
admin.py
from django.contrib import admin
from .models import User
admin.site.register(User)
行 user.staff = True 应该是 user.is_staff = True
我认为您还需要在其下方添加 user.is_superuser = True。