中间件设置
Middleware Setup
我正在尝试为我的营销应用程序设置消息中间件,但方法 process_request 没有返回任何内容。
运行 虽然没有返回消息请求,但仍然没有错误。
我的middleware.py---
from .models import MarketingMessage
class DisplayMarketing():
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
def process_request(request):
print("something")
try:
request.session['marketing_message'] = MarketingMessage.objects.all()[0].message
except:
request.session['marketing_message'] = False
response = self.get_response(request)
return response
我的settings.py
MIDDLEWARE = [
'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',
'marketing.middleware.DisplayMarketing',
]
如果你使用middleware mixin process_request 将自动调用。
尝试
from django.utils.deprecation import MiddlewareMixin
class DisplayMarketing(MiddlewareMixin):
def __init__(self, get_response):
self.get_response = get_response
def process_request(self, request):
print("something")
try:
request.session['marketing_message'] = "bossk"
except:
request.session['marketing_message'] = False
或者,您可以手动调用 process_request
from .models import MarketingMessage
class DisplayMarketing():
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
def process_request(request):
print("something")
try:
request.session['marketing_message'] ="bossk"
except:
request.session['marketing_message'] = False
response = self.get_response(process_request(request))
return response
我正在尝试为我的营销应用程序设置消息中间件,但方法 process_request 没有返回任何内容。 运行 虽然没有返回消息请求,但仍然没有错误。
我的middleware.py---
from .models import MarketingMessage
class DisplayMarketing():
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
def process_request(request):
print("something")
try:
request.session['marketing_message'] = MarketingMessage.objects.all()[0].message
except:
request.session['marketing_message'] = False
response = self.get_response(request)
return response
我的settings.py
MIDDLEWARE = [
'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',
'marketing.middleware.DisplayMarketing',
]
如果你使用middleware mixin process_request 将自动调用。
尝试
from django.utils.deprecation import MiddlewareMixin
class DisplayMarketing(MiddlewareMixin):
def __init__(self, get_response):
self.get_response = get_response
def process_request(self, request):
print("something")
try:
request.session['marketing_message'] = "bossk"
except:
request.session['marketing_message'] = False
或者,您可以手动调用 process_request
from .models import MarketingMessage
class DisplayMarketing():
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
def process_request(request):
print("something")
try:
request.session['marketing_message'] ="bossk"
except:
request.session['marketing_message'] = False
response = self.get_response(process_request(request))
return response