登录在Django中的自定义用户模式中不起作用

考沙尔帕特尔

我已经创建了由用户名和密码组成的自定义用户模型,我使用通过用户名和密码登录,但是当我尝试登录时,登录名不起作用

register_app / model.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager

# Create your models here.
class Register(models.Model):
   
    class Meta:
        db_table = "register"

    id = models.AutoField(primary_key = True)
    first_name=models.CharField(max_length=20)
    last_name=models.CharField(max_length=20)
    email=models.EmailField()

class HandleloginManager(BaseUserManager):
    def create_user(self, username, password=None):
        if not username:
            raise ValueError("username is required")
        user = self.model(
            username = self.username,
        )
        user.set_password(password)
        user.save(using=self._db)
        return user

class Handlelogin(AbstractBaseUser):

    class Meta:
        db_table = "login"

    username = models.CharField(max_length=150, unique = True)
    password = models.CharField(max_length = 50)
    register = models.OneToOneField(Register, on_delete=models.CASCADE)

    USERNAME_FIELD="username"

    REQUIRES_FIELD=['password']

    objects = HandleloginManager()

register_app / views.py

from django.shortcuts import redirect, render, HttpResponse
from .models import Register, Handlelogin
from django.contrib.auth import authenticate, login

# Create your views here.
def home(request):
        return render(request, 'home.html')

def register(request):
        if request.method == 'POST':
            if request.POST.get('firstname') and request.POST.get('lastname') and request.POST.get('username')and request.POST.get('email') and request.POST.get('password'):
               
                add = Register()
                add.first_name= request.POST['firstname']
                add.last_name= request.POST['lastname']
                add.email= request.POST['email']
                add.save()
                
                d = Handlelogin()
                d.username= request.POST['username']
                d.password= request.POST['password']
                d.register = add
                d.save()
                
                return redirect('/')  

        else:
                return render(request,'register.html')

def users(request):

        reg = Register.objects.all()

        return render(request, 'users.html', {'reg':reg})

def login_handle(request):
        if request.POST:
                username = request.POST['user']
                password = request.POST['pass']

                user = authenticate(username = username, password = password)
                
                if user is not None:
                        login(request, user)
                        return HttpResponse("Login Succesfully")
                else:
                        return HttpResponse("Invalid login")
                        
        return render(request, 'login.html')

我使用HTML表单而不是Django表单,并且在setting.py文件中添加了自定义用户模型AUTH_USER_MODEL =“ register_app.Handlelogin”

苏里亚·普拉塔普·拉娜(Surya Pratap Rana)
d = Handlelogin.objects.create_user(
       username=request.POST['username'],
       password=request.POST['password']
)
d.register = add
d.save()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自定义字体在WKWebView Swift中不起作用

iOS中的自定义字体不起作用

自定义字体在iOS 8中不起作用

REST API在自定义帖子中不起作用

案例类的自定义提取器在模式匹配中不起作用

Laravel redirect()-> intended()在自定义登录控制器中不起作用

Firebase登录在Flutter Android应用中不起作用

自定义MessageConverter在Spring Boot中不起作用

自定义UICollectionViewCell类中的按钮不起作用

自定义背景资源在android中不起作用

Auth登录在Cakephp中不起作用

FindResource在自定义控件DLL中不起作用

调度自定义事件在haxe中不起作用

指纹登录在Win10中不起作用

$(this)在.each中的自定义函数中不起作用

Drupal中的自定义元标记不起作用

默认登录在cakephp 3.2中不起作用

UICollectionView在自定义键盘扩展中不起作用

$(this) 在自定义 jQuery 函数中不起作用

android中的自定义listView不起作用

cloudformation 中的自定义功能不起作用

自定义 CSS 在 Laravel 中不起作用

自定义 UIView 类中的 UIButton 不起作用

DatePicker 在 React 自定义 Hook 中不起作用

Python - 在 Django 管理中添加自定义用户模型不起作用

自定义 UIView 中的 UITapGestureRecognizer 不起作用

我无法在 admin 中登录,并且在自定义用户之后登录在 Django 项目中不起作用

登录在 Spring Security 的自定义登录页面中不起作用

raise PermissionDenied 中的自定义消息在 Django rest 中不起作用