说明:
- 由于一个项目中可能存在于多个应用,而多个应用有可能都会用到登录验证,所以我们不能将其单独放在某一个应用中,因此我们需要新建一个单独的文件夹在存放该验证处理内容(在项目中我们通常会把一些通用的内容放到一个单独的文件夹中)
第一步:在项目根目录下新建一个python packages,命名为utils
(翻译为工具)
第二步:在utils包下新建一个python文件mixin.py
第三步:在 settings.py
中配置 LOGIN_URL
参数
LOGIN_URL = "/user/login" # 此处是你项目实际配置的登录url地址指向(根据自己实际情况书写)
第四步:mixin.py
文件导入以下模块,定义以下类
from django.contrib.auth.decorators import login_required
class LoginRequiredMixin(object):
@classmethod
def as_view(cls, **initkwards):
# 调用父类的as_view
view = super(LoginRequiredMixin, cls).as_view( **initkwards)
return login_required(view)
第五步:在要使用登录验证的视图views.py
文件中导入上述我们自定义的模块
from utils.mixin import LoginRequiredMixin
第六步:在views.py
视图中对要进行登录验证的视图类继承LoginRequiredMixin
class UserInfoView(LoginRequiredMixin, View):
....
....
return .......