我有一个功能(在count
内),如果用户class和is_authenticate()返回True
,但它没有返回 HTML 我以为会这样。
class LoginDetails:
def __init__(self, request):
self.request = request
self.template = 'myapp/errorpage.html'
self.context = {}
def user_is_logged_in(self):
if self.request.user.is_authenticated() and self.request.user.is_active:
print 'USER IS AUTHENTICATED!'
return True
print 'USER IS NOT AUTHENTICATED!'
return render(self.request, self.template, self.context)
views.py :
def authUsers(request):
logindetails = LoginDetails(request).user_is_logged_in()
return HttpResponse("HTML Error Page Not Rendered")
如果没有我在 views.py 中进行显示/渲染错误页面,该怎么办?我想要实现的目标是Stackoverflow的is_active。
答案 0 :(得分:0)
首先,你的课真的是多余的,调用它需要一行,修改你的视图也是一行
from django.http import HttpResponse, Http404
def authUsers(request):
if request.user.is_authenticated() and request.user.is_active:
raise Http404
else :
return render(...)
使用该类只会使问题复杂化。但如果你真的想,你可以这样修改它:
class LoginDetails:
def __init__(self, request):
self.request = request
self.template = 'myapp/errorpage.html'
self.context = {}
def user_is_logged_in(self):
if self.request.user.is_authenticated() and self.request.user.is_active:
return False
return render(self.request, self.template, self.context)
def authUsers(request):
logindetails = LoginDetails(request).user_is_logged_in()
if not logindetails:
return HttpResponse("HTML Error Page Not Rendered")
else:
return logindetails