0

所以伙计们,我正在尝试在 django 中实现自定义用户模型。我遇到了说“没有这样的列:UserAcc_mycustomuser.is_staff”的问题。我试过阅读 Django 文档,但仍然无法正常工作

model.py

from django.db import models
from django.core.validators import RegexValidator

from django.contrib.auth.models import (

    BaseUserManager, AbstractBaseUser
)
USERNAME_REGEX = '^[a-zA-Z0-9.+-]*$'

# Create your models here.
class MyUserManager(BaseUserManager):
  def create_user(self, username, email, password= None):
      if not email:
         raise ValueError('User must have an email address')
      user = self.model(
           username = username,
           email = self.normalize_email(email)
      )
      user.set_password(password)
      user.save(using=self._db)
      return user

  def create_superuser(self, username, email, password=None):
      user = self.create_user(
          username, email, password=password
      )
      user.is_admin= True
      user.is_staff= True

      user.save(using= self._db)
      return user


class MyCustomUser(AbstractBaseUser):
    username = models.CharField(max_length= 30, validators = 
    [RegexValidator(regex = USERNAME_REGEX,message='Username must be alphanumeric or contain numbers', code='invalid_username')] , unique = True)

      email = models.EmailField(
        max_length=255,
        unique = True,
        verbose_name= 'Email_Address'
)
   is_admin = models.BooleanField(default=False)
   is_staff = models.BooleanField(default=False)


objects = MyUserManager()

USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email']
4

1 回答 1

0

也许它需要进行迁移并将其应用到数据库

python manage.py makemigrations
python manage.py migrate
于 2018-07-17T21:35:07.417 回答