根据 官方文档 写了个自定义的 login 方法如下:
from django.contrib.auth import authenticate, login
def my_login(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
...
else:
# Return an 'invalid login' error message.
...
那么,在如何配合 @login_required 装饰器通过我自定义的 my_login() 方法进行登录呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在其他方法上加@login_required,request.user没有就跳转到登录页
你的登录post方法调用my_login不就行了
装饰器是用来放在其他view函数头,来截断请求判断当前请求的是否是登录的,若不加便不会有这个判断。
而你定义的登录view函数,是一个用来使用户登录的view函数,在这个函数里把用户的属性绑定在了request 这个对象上,作为用户登录标志。
纯手机打字,望有帮助!