微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

经理不在; 'auth.User' 已在 django 中替换为 'User.User'

如何解决经理不在; 'auth.User' 已在 django 中替换为 'User.User'

我正在尝试创建注册表单,但是一旦我保存,我就会收到提到的错误,即 'Manager 不可用'auth.User' 已被替换为 'User.User''。我经历了一些解决方案以及通过 Internet 提供的解决方案,但由于我是编码领域的新手,因此我无法应用所需的解决方案。

我正在分享我的代码,所以请仔细阅读并提供您宝贵的意见。

设置.py

INSTALLED_APPS = [
        'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','User','account',]

AUTH_USER_MODEL = 'User.User'

用户/模型.py

from django.db import models
from django.contrib.auth.models import (AbstractBaseUser,PermissionsMixin,UserManager)

class User(AbstractBaseUser,PermissionsMixin):
    username = models.CharField(max_length=100,unique=True)
    first_name = models.CharField(max_length=150,blank=True)
    last_name = models.CharField(max_length=150,blank=True)
    email = models.EmailField(max_length=255,unique=True)
    

    USERNAME_FIELD = 'email'
    required_FIELDS = ['username']

    objects = UserManager()

    def get_short_name(self):
        return self.username

    def documents(self):
        return self.document_uploaded.all()

    def get_full_name(self):
        full_name = None
        if self.first_name or self.last_name:
            full_name = self.first_name + " " + self.last_name
        elif self.username:
            full_name = self.username
        else:
            full_name = self.email
        return full_name

    def __str__(self):
        return self.email

    class Meta:
        db_table = 'auth_user'

用户/views.py

from django.shortcuts import get_object_or_404,redirect,render
from django.http import HttpResponseRedirect
from django.contrib.auth import get_user_model
from django.contrib.auth import authenticate,logout,login
from django.urls import reverse
from django.contrib.auth.decorators import login_required
from django.contrib.auth.views import PasswordResetView
from django.views.generic import (
    CreateView,UpdateView,DetailView,TemplateView,View,DeleteView)
from django.conf import settings
from .forms import ( PasswordResetEmailForm,LoginForm)
from django.contrib.auth.mixins import LoginrequiredMixin,AccessMixin

User = get_user_model()

class LoginView(TemplateView):
    template_name = "login.html"

    def get_context_data(self,**kwargs):
        context = super(LoginView,self).get_context_data(**kwargs)
        context["ENABLE_GOOGLE_LOGIN"] = settings.ENABLE_GOOGLE_LOGIN
        context["GP_CLIENT_SECRET"] = settings.GP_CLIENT_SECRET
        context["GP_CLIENT_ID"] = settings.GP_CLIENT_ID
        return context

    def dispatch(self,request,*args,**kwargs):
        if request.user.is_authenticated:
            return HttpResponseRedirect('/')
        return super(LoginView,self).dispatch(request,**kwargs)       


class logoutView(LoginrequiredMixin,View):
    def get(self,**kwargs):
        logout(request)
        request.session.flush()
        return redirect("User:user_login")


@login_required(login_url='/login')
def home(request):
    return render(request,'home.html')

def forgot_password(request):
    return render(request,'forgot_password.html')

class PasswordResetView(PasswordResetView):
    template_name = 'registration/password_reset_form.html'
    form_class = PasswordResetEmailForm
    email_template_name = 'registration/password_reset_email.html'

帐户/模型.py

from django.db import models
from User.models import User
from django.contrib.auth import get_user_model
from django.contrib.auth.models import (AbstractBaseUser,UserManager)

User = get_user_model()

帐户/views.py

from django.shortcuts import render,redirect
from .models import *
from django.http import HttpResponse
import datetime as dt 
from User.models import User
from django.contrib.auth import get_user_model 
from django.contrib.auth.forms import UserCreationForm

def registerView(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login_url')
    else:
        form = UserCreationForm()

    return render(request,'registration/register.html',{'form':form})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。