django .core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL относится к модели player.Player, которая не была установлена - PullRequest
0 голосов
/ 05 февраля 2020

Я не мог найти никакого решения, поэтому я должен создать новую тему здесь. Приложение player , конечно, установлено, и я не забыл поставить AUTH_USER_MODEL = 'player.Player' в settings.py .

Очевидно, я пытался удалить БД и миграции, и это не сработало.

models.py код, основанный на учебном пособии, созданном CodingWithMitch ниже:

from django.db import models
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager

User = get_user_model()


class MyPlayerManager(BaseUserManager):

    def create_user(self, email, username, password=None):
        if not email:
            raise ValueError('Users must have an e-mail address')
        if not username:
            raise ValueError('Users must have a username')

        user = self.model(
            email=self.normalize_email(email),
            username=username,
        )

        user.set_password(password)
        user.save(using=self._db)

        return user

    def create_superuser(self, email, username, password):
        user = self.create_user(
            email=self.normalize_email(email),
            username=username,
            password=password,
        )

        user.is_admin = True
        user.is_staff = True
        user.is_superuser = True
        user.save(using=self._db)

        return user


class Player(AbstractBaseUser):
    # USER FIELDS
    email = models.EmailField(
        verbose_name='email',
        max_length=100,
        unique=True,
    )
    username = models.CharField(max_length=50, unique=True)
    date_joined = models.DateTimeField(
        verbose_name='date joined',
        auto_now_add=True,
    )
    last_login = models.DateTimeField(verbose_name='last login', auto_now=True)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)


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

    objects = MyPlayerManager()


    def __str__(self):
        return self.username

    def has_perm(self, perm, obj=None):
        return self.is_admin

    def has_module_perms(self, app_label):
        return True

@ Редактировать :

settings.py код ниже

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

    'player',
    # some other apps
]

AUTH_USER_MODEL = 'player.Player'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...