Я пишу некоторое промежуточное программное обеспечение для моего приложения Django и застрял при попытке написать функцию process_template_response. Я знаком с шаблонами и рендерингом, но озадачен тем, как передать словарные значения в шаблон на основе некоторых операторов if / else, которые я написал в функции process_request. Цель моего промежуточного программного обеспечения - выпускать перенаправления на основе статуса авторизации, и мне нужно передать сообщение «Не авторизовано», когда кто-то запрашивает страницу, которую он не должен видеть.
Вот промежуточное ПО:
import re
from django.conf import settings
from django.utils.deprecation import MiddlewareMixin
from django.http import HttpResponsePermanentRedirect
class CustomMiddleware(MiddlewareMixin):
def __init__(self, get_response = None):
self.get_response = get_response
self.permittedPages = settings.PERMITTED_PAGES
self.noLoginRequired = setting.NO_LOGIN_PAGES
def process_request(self, request):
request_path = request.path.lstrip('/')
if request_path not in noLoginRequired and request_path in permittedPages and request.user.is_authenticated == False: HttpResponseRedirect(settings.LOGIN_URL)
elif request_path not in permittedPages and request.user.is_authenticated: #if the page isn't accessible but the user is logged in
not_found_message = 'This page isn\'t available, redirecting to the home page....'
return HttpResponseRedirect('/home/'), not_found_message
else: #if the page isn't accessible and the user isn't logged in
return HttpResponseRedirect(settings.LOGIN_URL)
def process_template_response(self, request):