lulurami 2022-10-24 14:51 采纳率: 66.7%
浏览 25
已结题

Django中间件里如何添加多个条件作为判断?

如果要在以下中间件里多添加一个条件:
比如:只允许 user.status = 1 的在线用户可以登录此页面,该怎么写?


class Middleware(MiddlewareMixin):
    def __init__(self, get_response):
        self.get_response = get_response

    def process_request(self, request):
        url_path = request.path
        urllist = ["/admin/login/","/admin/logout/","/admin/login/dologin/","/admin/verify/"]
        if re.match(r'^/admin/',url_path) and (url_path not in urllist): 
            if  not request.user.is_authenticated :    #这是判断是否在线,若不在线则要登录
                return redirect(reverse('admin_login'))
        response = self.get_response(request)
        return response

  • 写回答

1条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-10-24 15:27
    关注
     
    class Middleware(MiddlewareMixin):
        def __init__(self, get_response):
            self.get_response = get_response
     
        def process_request(self, request):
            url_path = request.path
            urllist = ["/admin/login/","/admin/logout/","/admin/login/dologin/","/admin/verify/"]
            if re.match(r'^/admin/',url_path) and (url_path not in urllist): 
                if  not request.user.is_authenticated :    #这是判断是否在线,若不在线则要登录
                    return redirect(reverse('admin_login'))
                if request.user.status != 1:  #在线,他的状态不等于1
                    return redirect(reverse('admin_login'))
            response = self.get_response(request)
            return response
    

    有帮助的话采纳一下哦!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析