У меня проблема с входом в админку django с абстрактным суперпользователем
Я разрабатываю отдельную абстрактную модель автора для своего сайта-блога. Авторы в этой абстрактной модели подключаются к моему приложению post, другому моему приложению, с внешним ключом и создают отношения автор-пост. Однако я даже не могу войти в панель администратора django, там написано, что мой пароль неправильный, но я уверен, что он правильный. в чем причина этого?
это код моей абстрактной модели пользователя
from django.contrib.auth.base_user import BaseUserManager
from django.db import models
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from django.contrib.auth.models import (AbstractBaseUser,
PermissionsMixin,)
class CustomAccountManager(BaseUserManager):
def create_superuser(self,email,firstName,lastName,password, **other_fields):
other_fields.setdefault('is_staff', True)
other_fields.setdefault('is_superuser', True)
other_fields.setdefault('is_active', True)
if other_fields.get("is_staff") is not True:
raise ValueError("Buraya erişim izniniz bulunmamaktadır. Lütfen yöneticiyle iletişime geçiniz.")
if other_fields.get("is_superuser") is not True:
raise ValueError("Buraya erişim sadece En üst düzey kullanıcılar içindir. Lütfen yöneticiyle iletişime Geçiniz")
return self.create_user(email,firstName,lastName,password, **other_fields)
def create_user(self, firstName,lastName,email,password, **other_fields):
if not email:
raise ValueError(_("Email Adresinizi Doğrulamalısınız!"))
email = self.normalize_email(email)
user = self.model(email=email,firstName=firstName,lastName=lastName, **other_fields)
user.set_password(password)
user.save()
return user
class Author(AbstractBaseUser,PermissionsMixin):
id = models.AutoField(primary_key=True)
firstName = models.CharField(max_length=100)
email = models.EmailField(_("email adresi"),max_length=100,unique=True)
lastName = models.CharField(max_length=100)
displayName = models.CharField(max_length=300)
gender = models.CharField(max_length=50)
avatar = models.ImageField(upload_to="avatar")
bgImage = models.ImageField(upload_to="background")
slug = models.SlugField(editable=False, unique=True)
desc = models.TextField()
jobName = models.CharField(max_length=50,default="Author Job")
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
objects = CustomAccountManager()
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["firstName","lastName"]
def __str__(self):
return self.displayName
def get_slug(self):
slug = slugify(self.title.replace("ı","i"))
unique = slug
number = 1
while Author.objects.filter(slug=unique).exists():
unique = "{}-{}" .format(slug,number)
number += 1
return unique
и это мой код пост-модели
def create_superuser(self, email, firstName, lastName, password, **other_fields): # ... return self.create_user(email, firstName, lastName, password, **other_fields)
Исправьте порядок create_user
параметров:
# def create_user(self, firstName, lastName, email, password, **other_fields):
def create_user(self, email, firstName, lastName, password, **other_fields):