Возможно это очень простая, но пока не очевидная для меня вещь. Почему этот код работает...
@login_required
def mem_area(request):
""" Returns Member Area HTML with data """
user = request.user
if user.is_staff:
return redirect('/')
user_info = UserInfo.objects.get(user_id=user.id)
page_title = 'Dashboard'
return render(request, 'user_resume/member_area/member_area.html', locals())
а этот нет? Под "не работает" имею ввиду, что не происходит редиректа, а админ попадает туда, куда не следует.
def admin_redirect(user):
""" Checks if user is admin and don't let him open member area """
if user.is_staff:
return redirect('/')
@login_required
def mem_area(request):
""" Returns Member Area HTML with data """
user = request.user
admin_redirect(user)
user_info = UserInfo.objects.get(user_id=user.id)
page_title = 'Dashboard'
return render(request, 'user_resume/member_area/member_area.html', locals())
Разница лишь в том, что я вынес проверку "на админа" и редирект в отдельную функцию.
Если я меняю return на raise Http404, то все ок, но мне нужен редирект