2017-05-21 5 views
1

私はサイトを構築しており、必要に応じてユーザーをリダイレクトできるメンテナンスページがあるといいと思います。Django:一時的にすべてのURLを1つのビューにリダイレクトする

すべてのリクエストを特定のビューにリダイレクトする方法を教えてください。私はConstanceを使用して、私の管理者ビューでメンテナンススイッチを持っています(単なるbool値)。その価値はプロジェクト全体で利用可能です。

すでにurlpatternsの別のリストを準備しましたが、リダイレクトが機能するように動的に変更する方法を理解できません。

maintenance_urlpatterns = [ 
    url(r'^$', views.maintenance, name='maintenance'), 
] 

これはアプリからurls.pyファイルではなく、私は一人で去るのプロジェクトです。

私はまたbase.htmlテンプレートを修正し、このように "メンテナンスページ"をレンダリングすることを考えましたが、それはかなり悪い解決策だと思います。

編集:明確にする。私の主な質問isntどのようにすべてのトラフィックをキャプチャするurlpatternを書くが、どのようにConstanceの設定変更に応じてこれらを動的に編集することです。だから私はそれを管理者で切り替えることができます。

答えて

3

質問の正規表現は、/(サイトのルート)にのみ一致します。すべてをキャッチする場合は、^のみを使用してください。すべてのURLには先頭がありますので、^は常に一致します。

url(r'^', views.maintenance, name='maintenance') 

もちろん、これは通常のurlパターンが何らかの形で無効になっているかどうかによって決まります。多分あなたはそれが既にカバーされているように思えます。

+0

残念ながら、私はこれらの他のURLパターンは準備していませんが、私の管理者のメンテナンスをトグルしてから変更する方法はわかりません。 – Filip

関連する問題