AttributeError at /accounts/register/ Manager isn't 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)
I Have Error when registration AttributeError at /accounts/register/
Manager isn't available; 'auth.User' has been swapped for 'stackapp.CustomUser'
Exception Type: AttributeError
Exception Value:
Manager isn't available; 'auth.User' has been swapped for 'stackapp.CustomUser'
Exception Location: /home/vinay/lib/python3.10/site-packages/django/db/models/manager.py, line 196, in get
what is the issue??
When i am using Django user it will work but change to custom user not working.
The documentations says
Finally, the following forms are tied to User and need to be rewritten or extended to work with a custom user model: UserCreationForm UserChangeForm
You can find this question helpful