AttributeError at /accounts/register/ Manager is not available; 'auth.User' has been swapped for 'accounts.CustomUser'

у меня такая проблема при регистрации пользователя через шаблон register.html вот точная проблема

AttributeError at /accounts/register/ Менеджер недоступен; 'auth.User' был заменен на 'accounts.CustomUser'

я создал пользовательскую модель пользователя и пользовательский менеджер, которые перечислены здесь

файл models.py

from django.contrib.auth.base_user import AbstractBaseUser

from django.db import models

from django.contrib.auth.models import AbstractUser, BaseUserManager, PermissionsMixin

from datetime import datetime

from Etesting.settings import USE_I18N

from django.utils import timezone

from django.utils.translation import gettext_lazy as _

# Create your models here.

class MyCustomUserManager(BaseUserManager):
    def create_user(self, email,username, password=None, **extra_fields):
        if not username:
            raise ValueError('There must be a username')
        if not email:
            raise ValueError('There must be an email')
        
        user=self.model(
            email=self.normalize_email(email),
            username=username, **extra_fields
        )
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, username, password,**extra_fields):
        
        extra_fields.setdefault('is_admin',True)
        extra_fields.setdefault('is_staff',True)
        extra_fields.setdefault('is_superuser',True)
        return self.create_user(email,
                              username,
                              password, **extra_fields)

class CustomUser(AbstractBaseUser, PermissionsMixin):
    username=models.CharField(max_length=50, unique=True)
    email=models.EmailField(verbose_name='email', unique=True)
    first_name=None
    last_name=None
    is_admin=models.BooleanField(default=False)
    is_staff=models.BooleanField(default=False)
    is_superuser=models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
    USERNAME_FIELD='email'
    REQUIRED_FIELDS=['username']
    
    objects = MyCustomUserManager()
    
    def __str__(self):
        return self.username

    def has_perm(self, perm, obj=None):
        """
        Return True if the user has the specified permission. Query all
        available auth backends, but return immediately if any backend returns
        True. Thus, a user who has permission from a single auth backend is
        assumed to have permission in general. If an object is provided, check
        permissions for that object.
        """
        # Active superusers have all permissions.
        if self.is_active and self.is_superuser:
            return True
    def has_module_perms(self, app_label):
        """
        Return True if the user has any permissions in the given app label.
        Use similar logic as has_perm(), above.
        """
        # Active superusers have all permissions.
        if self.is_active and self.is_superuser:
            return True

registerForm.py Файл

from django import forms
from ..models import CustomUser
from django.contrib.auth.forms import UserCreationForm
class RegisterForm(UserCreationForm):
    email=forms.EmailField()
    class meta:
        model=CustomUser
        fields=( 'username','email', 'password')

файлviews.py

from django.contrib.auth.models import User
from django.shortcuts import render

from django.views import View
from django.shortcuts import render, redirect

from .forms.registerform import RegisterForm
from .forms.loginform import LoginForm
from django.contrib.auth import get_user_model
from django.db.models import manager
User=get_user_model()
class LoginView(View):
    def get(self, request):
        form=LoginForm()
        context={
            'form':form
        }
        return render(request, 'login.html', context)
    
class RegisterView(View):
    def get(self, request):
        form=RegisterForm()
        context={}
        context['form']=form
        return render(request, 'register.html', context)
    def post(self,request):
        form=RegisterForm(request.POST or None)
        if form.is_valid():
            form.save()
            return redirect('login')
        return redirect('register')
class IndexView(View):
    def get(self, request):
        return render(request, 'base.html')

файлurls.py

from django.contrib import admin
from django.urls import path, include
from .views import LoginView, RegisterView, IndexView
urlpatterns = [
    path('', IndexView.as_view(), name='index'),
    path('login/', LoginView.as_view()),
    path('register/', RegisterView.as_view()),    

файл register.html

{% extends 'base.html' %}
{% load static %}

{% block content %}
        
        <!-- Breadcrumb Start -->
        <div class="breadcrumb-wrap">
            <div class="container-fluid">
                <ul class="breadcrumb">
                    <li class="breadcrumb-item"><a href="#">Home</a></li>
                    <li class="breadcrumb-item"><a href="#">Products</a></li>
                    <li class="breadcrumb-item active">Register</li>
                </ul>
            </div>
        </div>
        <!-- Breadcrumb End -->
        
        <!-- Register Start -->
        <div class="login">
            <div class="container-fluid">
                <div class="row"><div class="col-lg-6">    
                    <div class="register-form">
                        <form action="" method="POST">
                            {% csrf_token %}
                            <div class="row">
                                {{form}}
                                <div class="col-md-12">
                                    <button type="submit"
                                     class="btn">Submit</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>

{% endblock %}

Я перепробовал много решений, но не знаю, где возникает проблема. Я новичок в django, может ли кто-нибудь помочь мне решить эту проблему.

Вернуться на верх