django - 使用用户身份验证()的 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.
每当我点击登录页面时,登录页面永远不会加载,更不用说检查是否正在进行身份验证。
发生的错误如下:
我不确定错误发生的确切位置以及必须对其应用什么解决方案。
解决方案
request.method
如果不是 POST,您的视图永远不会返回任何内容。
推荐阅读
- java - Docker-compose 和 Java
- google-sheets - Google 表格部分匹配单元格
- python - tensorflow ValueError:形状不兼容
- typescript - 必需的类型删除了函数类型的知识
- sql-server - T-SQL WHERE IN子句:一个参数包含多个INT值会返回类型转换错误
- javascript - addEventListener 不是函数“Javascript”
- python - 试图将对象添加到文本文件中
- python - 在 cloudflare 中添加 8081 等新端口
- java - Android String.contains 最多只能使用大约 154 个字符
- flutter - 两个不同页面上的两个 ChangeNotifierProvider