首页 > 解决方案 > 使用用户身份验证()的 Django 用户登录错误

问题描述

我有一个基本的登录,在我的 Django 项目中注册 html 页面:登录页面重定向到 views.py 中的 user_login函数,如下所示:

  <form action="{% url 'user_login' %}" method="POST">. //rest of the code

urls.py中,请求被正确转发:

   .......#beginnning code

   path('user_login', views.user_login, name='user_login'),
   path('portfolio', views.portfolio, name='portfolio'),  
   ......

在 views.py 中,这是我的 user_login 代码,用于验证用户身份并将用户重定向到“portfolio.html”页面(如果用户凭据正确)。

我已经导入了用户,登录类如下:

   from django.http import HttpResponseRedirect
   from django.shortcuts import render
   from .models import Profile
   from django.contrib.auth.models import User
   from django.contrib.auth import authenticate, login

   # Create your views here.


   def index(request):
       return render(request, 'mysite/index.html')


   def user_login(request):
       if request.method == 'POST':
           name_r = request.POST.get('name')
           password_r = request.POST.get('password')

           user = authenticate(username=name_r, password=password_r)

           if user:
               login(request, user)

               #below line might be incorrect
               return HttpResponseRedirect('mysite/portfolio.html')
           else:
               return render(request, 'mysite/login.html')

 #rest of the code for signup which is working perfectly.

每当我点击登录页面时,登录页面永远不会加载,更不用说检查是否正在进行身份验证。

发生的错误如下:

在此处输入图像描述

我不确定错误发生的确切位置以及必须对其应用什么解决方案。

标签: djangoauthenticationdjango-viewsdjango-users

解决方案


request.method如果不是 POST,您的视图永远不会返回任何内容。


推荐阅读