Render template directly from Django middleware
May 22, 2021 ‐ 1 min read
In Django you normally specify templates to be rendered from a view class or function. Instead you can render a template directly from the Django middleware as well, as an alternative to redirecting to a different view.
For example you may want to render a maintenance template if your site is in maintenance mode. In that case you can directly call the render function that can be imported from django.shortcuts
.
This example may look like the following:
from django.conf import settings
from django.shortcuts import render
class MaintenanceMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if settings.IN_MAINTENANCE:
return render(request, 'maintenance.html)
return self.get_response(request)