В настоящее время я использую пользовательский класс API отдыха, который учит меня создавать собственные пользовательские REST API для аутентификации, а также создавать пользовательские модели пользователей.
У меня небольшая проблема со следующимикодовая база:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.models import BaseUserManager
# Create your models here.
class UserProfileManager(BaseUserManager):
""" Manager for User Profiles"""
def create_user(self, email, name, password=None):
""" Create a new user profile"""
if not email:
raise ValueError('Users must have an email address')
email = self.normalize_email(email)
user = self.model(email=email, name=name)
""" user.set_password(password) encrypts the passwords as a hash """
user.set_password(password)
""" This allows you to specify which database to use for the user accounts. Django Supports multiple Databases!!! 8D """
user.save(using=self._db)
return user
def create_superusr(self, email, name, password):
""" Create and save a new superuser with given details """
user = self.create_user(email, name, password)
user.is_superuser = True
user.is_staff = True
user.save(using=self._db)
return user
class UserProfile(AbstractBaseUser, PermissionsMixin):
""" Database model for users in system """
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
objects = UserProfileManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['name']
def get_full_name(self):
""" Retrieve Full Name of User"""
return self.name
def get_short_name(self):
""" Retrieve short name of User"""
return self.name
def __str__(self):
"""Return String representation of our User """
return self.email
Основная проблема в разделе UserProfileManager, проблема в соответствии с выводом ошибки - в разделе create_superuser.
Сообщение об ошибке следующее:
AttributeError: у объекта 'UserProfileManager' нет атрибута 'create_superuser'
Я проверил, чтобы убедиться, что в моем файле settings.py, чтобы убедиться, что использование пользовательской модели, а также Ive проверил, чтобы подтвердить, чтоКоманды makemigrations и migrations были выполнены.Ive также проверил, удалив файлы init , а также базу данных и восстановив их.
Ive также проверил, чтобы убедиться, что суперпользователь работает, и включен портал администратора django, причем все это безнастраиваемый профиль пользователя работает нормально, но с ним он ломается, поэтому я знаю, что моя проблема должна быть как-то связана с разделом кода выше, но я ничего не могу найти.Я сверился с официальными документами Django, но сейчас я в растерянности.