如何解决由于中间件文件而未显示网址
我试图访问我的索引视图,但是我自动重定向到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"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。