django - 由于中间件文件,网址未显示
问题描述
我试图访问我的索引视图,但我自动重定向到 show_login 视图,我认为问题来自我的自定义中间件文件
这是主要观点:
def indexmain(request):
return render(request, "main_template/index.html")
网址:
path('admin/', admin.site.urls),
path('accounts/',include('django.contrib.auth.urls')),
path('', views.ShowLoginPage, name="show_login"),
path('indexmain', views.indexmain,name="index"),
path('get_user_details', views.GetUserDetails),
path('logout_user', views.logout_user,name="logout"),
path('doLogin',views.doLogin,name="do_login"),
这是我的自定义中间件文件:
from django.http import HttpResponseRedirect
from django.urls import reverse
from django.utils.deprecation import MiddlewareMixin
class LoginCheckMiddleWare(MiddlewareMixin):
def process_view(self,request,view_func,view_args,view_kwargs):
modulename=view_func.__module__
print(modulename)
user=request.user
if user.is_authenticated:
if user.user_type == "1":
if modulename == "gestion.HodViews":
pass
elif modulename == "gestion.views" or modulename == "django.views.static":
pass
elif modulename == "django.contrib.auth.views" or modulename =="django.contrib.admin.sites":
pass
else:
return HttpResponseRedirect(reverse("admin_home"))
elif user.user_type == "2":
if modulename == "gestion.StaffViews" or modulename == "gestion.EditResultVIewClass":
pass
elif modulename == "student_management_app.views" or modulename == "django.views.static":
pass
else:
return HttpResponseRedirect(reverse("staff_home"))
else:
return HttpResponseRedirect(reverse("show_login"))
else:
if request.path == reverse("index") or request.path == reverse("show_login") or request.path == reverse("do_login") or modulename == "django.contrib.auth.views" or modulename =="django.contrib.admin.sites" :
pass
else:
return HttpResponseRedirect(reverse("show_login"))
解决方案
尝试删除最后一个其他部分,它会工作
else:
return HttpResponseRedirect(reverse("show_login"))
推荐阅读
- python - Pytorch 中的“unsqueeze”是做什么的?
- c# - WinForm App未将日志写入LinqPad中数据源时创建的文件
- google-apps-script - 尝试在没有 for 循环的范围内执行 setValue 操作(GoogleAppsScripts)
- c# - 协程在 WaitForSeconds 期间执行代码
- r - 从长格式数据帧构建节点和边
- date - Extjs如何刷新当前时间
- r - R - 如果它们共享相同的行名,如何通过将每个元素中的所有数字相加来连接列表
- r - 是否有从多个数据集中获取多个列中的计数的函数?
- ruby-on-rails - 关于 ruby on rails 搜索页面中 where 方法的问题
- typescript - 不满足打字稿中的约束“对象”