Django:暂时将所有URL重定向到一个视图

时间:2017-05-21 22:11:32

标签: python django redirect

我正在构建网站,并认为如果需要的话,我可以在某种维护页面重定向用户。

如何开始将所有请求重定向到一个特定视图?我正在使用Constance在我的管理视图中进行维护切换(只是一个bool值)。然后可以通过该项目获得其价值。

我已经准备了另一个urlpatterns列表,但无法弄清楚如何动态更改它们以便重定向工作。

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

这是来自应用的urls.py文件,而不是我将单独留下的项目。

我还考虑过修改base.html模板并以这种方式呈现“维护页面”,但我认为这是非常糟糕的解决方案。

编辑:澄清。我的主要问题不是如何编写将捕获所有流量的urlpattern,而是如何动态编辑这些以响应Constance配置更改。所以我可以在管理员中切换它。

1 个答案:

答案 0 :(得分:5)

您问题中的正则表达式只会在/(您网站的根目录)上匹配。如果您想捕捉所有内容,请仅使用^。每个网址都有一个开头,因此^始终匹配。

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

当然,这取决于您的正常网址是否以某种方式被禁用。听起来好像你已经覆盖了它。