При добавлении пользователя через админку не шифруется пароль
При добавлении через createsuperuser и через djoser всё шифруется нормально, а при добавлении через админку шифрования нет
models.py
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
from django.contrib.auth.models import PermissionsMixin
from django.db import models
from account.validators import validate_nickname
class UserManager(BaseUserManager):
def create_user(self, email, nickname, password=None):
user = self.model(email=self.normalize_email(email), nickname=nickname)
user.set_password(password)
user.save(using=self._db)
return user
def create_staffuser(self, email, nickname, password):
user = self.create_user(
email,
nickname,
password=password,
)
user.is_staff = True
user.save(using=self._db)
return user
def create_superuser(self, email, nickname, password):
user = self.create_user(email, nickname, password=password)
user.is_superuser = True
user.is_staff = True
user.save(using=self._db)
return user
class UserAccount(AbstractBaseUser, PermissionsMixin):
nickname = models.CharField(max_length=60, unique=True, validators=[validate_nickname])
email = models.CharField(max_length=100, unique=True)
password = models.CharField(max_length=255)
registered = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(default=0)
money = models.IntegerField(default=0)
uuid = models.CharField(max_length=36, blank=True, null=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
USERNAME_FIELD = "nickname"
EMAIL_FIELD = "email"
REQUIRED_FIELDS = ["email", "password"]
objects = UserManager()
class Meta:
db_table = "user_accounts"
verbose_name = "Аккаунт"
verbose_name_plural = "Аккаунты"
admin.py
from django.contrib import admin
from django.contrib.admin import register
from django.contrib.auth.models import Group
from account.models import UserAccount
@register(UserAccount)
class UserAccountAdmin(admin.ModelAdmin):
exclude = ["last_login", "groups"]
admin.site.unregister(Group)