from django.urls import resolve
from django.utils.deprecation import MiddlewareMixin
from django.http import HttpResponse
from django.template import loader
from .models import SiteMaintenance
class SiteMaintenanceMiddleware(MiddlewareMixin):
def check_maintenance(self):
site_maintenance = SiteMaintenance.get_object()
return site_maintenance.is_maintenance
def process_view(self, request, view_func, view_args, view_kwargs):
if self.check_maintenance() and not request.user.is_staff:
return HttpResponse(loader.render_to_string('503.html'), status=503)
デフォルトでは500に戻りますか?またはトレースバックが何かを教えてください、あなたは例外を行うことができます –
いいえ手動でコードを書いてみたい503 –
エラーがある場合はexcepciónを実行して必要なテンプレートを呼び出す –