我想制作网站维护页面,并使用复选框字段创建用于网站维护的单例模型,因此,当我从 Django 管理中选中该复选框时,如果我们点击网站的任何 URL,网站应该显示维护页面。
我检查了 503 状态代码与服务不可用相关,所以 如何在代码中手动引发 503 错误,并且还想在引发 503 错误时呈现自定义模板。
最佳答案
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)
关于django - 如何在 django 中引发 503 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200935/