我们有中间件记录用户访问过的最后一个网址:
class LastSiteUrl(object):
def is_admin_url(self, url):
if re.search('^(http:\/\/.*){0,1}\/admin\/', url) is None: return(False)
else: return(True)
def process_request(self, request):
if self.is_admin_url(request.path) and \
not self.is_admin_url(request.META['HTTP_REFERER']):
request.session['last_site_url'] = request.META['HTTP_REFERER']
我们使用它将它们返回到他们所在的最后一个应用页面, 从管理页面,无论他们有多深入管理员。这是 工作正常。
我们有一个自定义的404页面,从那里我想提供一个链接 把他们带回应用程序中的位置。但似乎是 中间件在转到无效页面时不会运行。有没有 在这种情况下让它运行的方式呢?
答案 0 :(得分:1)
如果您在基础urls.py中使用handler404,则可以从django视图而不是直接从服务器提供404页面,并按照您对任何其他django视图的方式添加该中间件。
https://docs.djangoproject.com/en/dev/ref/urls/#django.conf.urls.handler404
在urls.py中
handler404 = 'app.views.view'
或
handler404 = ClassView.as_view()