ImproperlyConfigured at /admin/login/ Невозможно войти в админку django после создания суперпользователя с пользовательской моделью пользователя
Я пытаюсь войти в админ панель django с суперпользователем, которого я успешно создал, но каждый раз он выдает мне ImproperlyConfigured в /admin/login/, говоря, что settings. DATABASES is improperly configured, но я проверил все и ничего не кажется неправильным, дело в том, что я также использую несколько баз данных с postgresql, поэтому созданный суперпользователь является моим приложением user_account, только вот код : models.py моего приложения user_account:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
from django.core.validators import validate_email
from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ValidationError
# Create your models here.
class UserAccountManager(BaseUserManager):
def email_validator(self,email):
try:
validate_email(email)
except ValidationError:
raise ValueError(_("please enter a valid email address"))
def create_user(self, email, name, phone_number, password=None):
if email:
email=self.normalize_email(email)
self.email_validator(email)
else:
raise ValueError(_("an email address is required"))
if not name:
raise ValueError(_("first name is required"))
if not phone_number:
raise ValueError(_("phone number is required"))
user = self.model(email=email, name=name, phone_number=phone_number)
user.set_password(password)
user.save(using=self._db)
return user
def create_member(self, email, name, phone_number, password=None):
user = self.create_user(email, name, phone_number,password)
user.is_member = True
user.is_staff = True
user.is_superuser = False
user.save(using=self._db)
return user
def create_superuser(self, email, name, phone_number, password=None):
user = self.create_user(email, name, phone_number, password)
user.is_member = True
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
class UserAccount(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
phone_number = models.CharField(max_length=12, unique = True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_member = models.BooleanField(default=False)
objects = UserAccountManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS=['name', 'phone_number']
def __str__(self):
return self.email
и вот мой файл router.py
class AuthRouter:
route_app_labels = {"user_account", "admin", "contenttypes", "sessions", "auth",}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'users'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'users'
return None
def allow_relation(self, obj1, obj2, **hints):
if(
obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'users'
return None
из моего файла settings.py
и файл urls.py
"""
URL configuration for CarRentalProject project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView
urlpatterns = [
path('api/token/', TokenObtainPairView.as_view()),
path('api/token/Refresh', TokenRefreshView.as_view()),
path('api/token/Verify', TokenVerifyView.as_view()),
path('admin/', admin.site.urls),
]
вот какая ошибка у меня возникает
Exception Type: ImproperlyConfigured at /admin/login/
Exception Value: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Я также проверил документацию, но, похоже, ничего не помогло. Пожалуйста, мне нужна ваша помощь, пожалуйста.
Убедитесь, что переменная route_app_labels, указанная в AuthRouter, включает ссылки на rest_framework и rest_framework_simplejwt из-за использования классов аутентификации rest_framework.
class AuthRouter:
route_app_labels = {"user_account", "admin", "contenttypes", "sessions", "auth", "rest_framework", "rest_framework_simplejwt"}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'users'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'users'
return None
def allow_relation(self, obj1, obj2, **hints):
if(
obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'users'
return None
Попробуйте этот.