我想要制作站点维护页面,我用复选框字段创建站点维护的单例模型,所以当我从Django admin选中该复选框时,如果我们点击网站的任何URL,站点应该会显示维护页面。
我检查了503状态代码与服务不可用的有关,所以我如何在代码中手动引发503错误,并且在503错误引发时也要呈现自定义模板。
发布于 2017-09-17 07:37:20
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)https://stackoverflow.com/questions/46200935
复制相似问题