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

from django.db.models import Count
"imorting the packges"
from django.shortcuts import render, HttpResponse
from django.core.paginator import Paginator
from django.contrib import messages
from .models import *
from .forms import AnswerForm, QuestionForm, ProfileForm
from django.contrib.auth.forms import UserCreationForm
from .forms import ProfileForm
from django.conf import settings
User = settings.AUTH_USER_MODEL


# Home Page


def home(request):
    "creating a function for paginator"
    if 'q' in request.GET:
        q = request.GET['q']
        quests = Question.objects.filter(title__icontains=q).order_by('-id')
    else:
        quests = Question.objects.all().order_by('-id')
    paginator = Paginator(quests, 10)
    page_num = request.GET.get('page', 1)
    quests = paginator.page(page_num)
    return render(request, 'home.html', {'quests': quests})


# Detail
def detail(request, id):
    "creating a function for question details"
    quest = Question.objects.get(pk=id)
    tags = quest.tags.split(',')
    answers = Answer.objects.filter(question=quest).order_by('-id')
    # comments = Comment.objects.filter(answer=answer).order_by('-id')

    answerform = AnswerForm
    if request.method == 'POST':
        answerData = AnswerForm(request.POST)
        if answerData.is_valid():
            answer = answerData.save(commit=False)
            answer.question = quest
            answer.user = request.user
            answer.save()
            messages.success(request, 'Answer has been submitted successfully')
    return render(request, 'detail.html', {
        'quest': quest,
        'tags': tags,
        'answers': answers,
        'answerform': answerform,
    })


# User Register
def register(request):
    form=UserCreationForm
    if request.method=='POST':
        regForm=UserCreationForm(request.POST)
        if regForm.is_valid():
            regForm.save()
            messages.success(request,'User has been registered!!')
    return render(request,'registration/register.html',{'form':form})

views.py

"importing package"
from dataclasses import field
from django.forms import ModelForm
from .models import Answer, CustomUser, Question


class AnswerForm(ModelForm):
    "creating answerform"
    class Meta:
        model = Answer
        "fetch all field"
        fields = ('detail',)


class QuestionForm(ModelForm):
    class Meta:
        model = Question
        fields = ('title', 'detail', 'tags')


class ProfileForm(ModelForm):
    class Meta:
        model = CustomUser
        fields = ('first_name', 'last_name', 'username', 'bio', 'location')

forms.py

import profile
from django.conf import settings
from django.db import models
from django.contrib.auth.models import User, AbstractUser


class CustomUser(AbstractUser):
    bio = models.CharField(max_length=200)
    location = models.CharField(max_length=200)


# Question Model
class Question(models.Model):
    "creating question table with the following attributes"
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    title = models.CharField(max_length=300)
    detail = models.TextField()

    tags = models.TextField(default=' ')
    add_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title


# Answer Model
class Answer(models.Model):
    "creating answer table with following attributes "
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True)
    detail = models.TextField()
    add_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.detail


# Comment Model
class Comment(models.Model):
    "creating Comment Table with following attributes"
    answer = models.ForeignKey(Answer, on_delete=models.CASCADE)
    user = models.ForeignKey(
        CustomUser, on_delete=models.CASCADE, related_name='comment_user')
    comment = models.TextField(default=' ')
    add_time = models.DateTimeField(auto_now_add=True)

У меня ошибка при регистрации AttributeError в /accounts/register/ Менеджер недоступен; 'auth.User' был заменен на 'stackapp.CustomUser' Тип исключения: AttributeError Значение исключения:
Менеджер недоступен; 'auth.User' был заменен на 'stackapp.CustomUser' Exception Location: /home/vinay/lib/python3.10/site-packages/django/db/models/manager.py, строка 196, in get

в чем проблема?

Когда я использую пользователя Django, он работает, но изменение на пользовательского пользователя не работает.

В документации говорится

Наконец, следующие формы привязаны к User и должны быть переписаны или расширены для работы с пользовательской моделью пользователя: UserCreationForm UserChangeForm

Вы можете найти этот вопрос полезным

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