Django 中间件不工作模板
Django middleware doesn't working template
我为动态徽标、站点标题等实现了 Django 中间件。它运行非常缓慢。
例子。当我更新我的网站标题时,它并没有立即更新。但是当我重新启动服务器时它正在工作。
这是我的代码
class AppBasicInfo():
def __init__(self, get_response):
self.site = SiteInfo.objects.first() if SiteInfo.objects.first() else "Not Implemented"
self.get_response = get_response
def __call__(self, request, *args, **kwargs):
request.site = self.site
response = self.get_response(request)
return response
设置文件
MIDDLEWARE = [
'blog.middleware.AppBasicInfo',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'blog.middleware.AppMenu',
'blog.middleware.SocialIcon',
'blog.middleware.DynamicYear',
]
我调用中间件变量作为我的模板,如 {{request.site.site_title}}
__init__
只调用了一次,试试移动
self.site = SiteInfo.objects.first() if SiteInfo.objects.first() else "Not Implemented"
到__call__
我为动态徽标、站点标题等实现了 Django 中间件。它运行非常缓慢。 例子。当我更新我的网站标题时,它并没有立即更新。但是当我重新启动服务器时它正在工作。 这是我的代码
class AppBasicInfo():
def __init__(self, get_response):
self.site = SiteInfo.objects.first() if SiteInfo.objects.first() else "Not Implemented"
self.get_response = get_response
def __call__(self, request, *args, **kwargs):
request.site = self.site
response = self.get_response(request)
return response
设置文件
MIDDLEWARE = [
'blog.middleware.AppBasicInfo',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'blog.middleware.AppMenu',
'blog.middleware.SocialIcon',
'blog.middleware.DynamicYear',
]
我调用中间件变量作为我的模板,如 {{request.site.site_title}}
__init__
只调用了一次,试试移动
self.site = SiteInfo.objects.first() if SiteInfo.objects.first() else "Not Implemented"
到__call__