Django - 根据变量重定向

时间:2014-03-15 23:57:09

标签: python django redirect

我已经扩展了Site模型,我想为它添加一个参数,并将其命名为Activate Under Construction页面。

到目前为止它很简单,我想要做的是当该字段为True时,我希望除了/ admin /之外的每个url都被重定向到/ underconstruction / View ....我怎样才能做到这一点?

谢谢你, ARA

1 个答案:

答案 0 :(得分:0)

您是否可以重新启动服务器以更改所述值?看起来你可以在urls.py中做一个条件重定向(即用条件值定义url_patterns变量,类似于某些人如果使用DEBUG,添加一些额外的url模式);

if (config.UNDER_CONSTRUCTION):
  urlpatterns = patterns('',
    url(r'^admin/$', admin),
    url(r'^underconstruction/', 'something.views.underconstruction',name='underconstruction')
    url(r'^.*$', RedirectView.as_view(url='underconstruction', permanent=False), name='uc')
) #defintely recommend making sure permanent not set to True
else:
  urlpatterns = patterns('',
    ... #normal patterns go here

否则看起来你可能会重载RedirectView,但这意味着每个请求都需要检查变量并相应地进行路由)我觉得应该有另一种方法,但不要考虑它。