ユーザーが最後にアクセスした URL を記録するミドルウェアがあります。
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 ページがあり、そこからアプリ内の元の場所に戻るためのリンクを提供したいと考えています。しかし、無効なページに移動すると、ミドルウェアが実行されないようです。その場合も実行する方法はありますか?