Промежуточное ПО для ответов на шаблонах - PullRequest
1 голос
/ 25 апреля 2019

Я пишу некоторое промежуточное программное обеспечение для моего приложения 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):
...