Auth登录装饰器

#第一种方式
#在url里
from django.contrib.auth.decorators import lgoin_required

    urlpatterns = [
      path('',lgoin_required(UserInfoView.as_view()),name='user'),#用户中心-信息页
      path('order',lgoin_required(UserOrderView.as_view()),name='order'),#用户中心-订单页
      path('address',lgoin_required(UserAddressView.as_view()),name='address'),#用户中心地址页       
]
#第二种方式
from django.contrib.auth.decorators import login_required

class LoginRequireMixin(object):
    @classmethod
    def as_view(cls,**initkwargs):    #该方法是as_view()
        #调用父类的as_view()    
        view=super(LoginRequireMixin,cls).as_view(**initkwargs)
        return login_required(view)

#需要使用登录装饰器的视图直接先继承该类OK
class UserInfoView(LoginRequireMixin,View):
    pass

#需要再setting配置登录的URL
#配置登录的url地址
LGOIN_URL = '/user/login'

#url不变

  

猜你喜欢

转载自www.cnblogs.com/pengsq/p/9716020.html