Python 3.x 如何使用中间件在每个站点页面上显示相同的消息
我是django和编程新手。我正试图建立一个电子商务网站,我被自定义中间件卡住了。我正在尝试设置一条消息,它将出现在网站的每个页面上 我认为代码是有效的,因为如果我输入print(“某物”)并刷新浏览器,“某物”在终端窗口中Python 3.x 如何使用中间件在每个站点页面上显示相同的消息,python-3.x,django-middleware,django-2.1,Python 3.x,Django Middleware,Django 2.1,我是django和编程新手。我正试图建立一个电子商务网站,我被自定义中间件卡住了。我正在尝试设置一条消息,它将出现在网站的每个页面上 我认为代码是有效的,因为如果我输入print(“某物”)并刷新浏览器,“某物”在终端窗口中 middleware.py from .models import MarketingMessage class DisplayMarketing: def __init__(self, get_response): self.get_respon
middleware.py
from .models import MarketingMessage
class DisplayMarketing:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return response
def process_view(self, request, view_func, view_args, view_kwargs):
try:
request.session["marketing_message"] = MarketingMessage.objects.all()[0].message
except:
request.session["marketing_message"] = False
settings.py
MIDDLEWARE = [
...
'marketing.middleware.DisplayMarketing',
]
base.html
{% if marketing_message %}
<div class="alert alert-top-message alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert">
<span aria-hidden="true">×</span><span class="sr-only">Close</span>
</button>
<div class="container">
<h3> {{ marketing_message }} </h3>
</div>
</div>
{% endif %}
middleware.py
from.models导入MarketingMessage
课堂营销:
定义初始化(自我,获取响应):
self.get\u response=get\u response
定义呼叫(自我,请求):
响应=自我获取响应(请求)
返回响应
def进程视图(自身、请求、视图函数、视图参数、视图参数):
尝试:
request.session[“marketing_message”]=MarketingMessage.objects.all()[0]。message
除:
请求.会话[“营销信息”]=False
设置.py
中间件=[
...
“marketing.middleware.DisplayMarketing”,
]
base.html
{%if营销_消息%}
&时代;接近
{{marketing_message}}
{%endif%}
我希望在每页的顶部都有一条警告消息(您好)
有人能帮忙吗