django 里自定义的 login 方法,如何使用 login_required()

根据 官方文档 写了个自定义的 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() 方法进行登录呢?

阅读 8k
3 个回答

在其他方法上加@login_required,request.user没有就跳转到登录页
你的登录post方法调用my_login不就行了

装饰器是用来放在其他view函数头,来截断请求判断当前请求的是否是登录的,若不加便不会有这个判断。
而你定义的登录view函数,是一个用来使用户登录的view函数,在这个函数里把用户的属性绑定在了request 这个对象上,作为用户登录标志。

纯手机打字,望有帮助!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题