2012-09-20 42 views
1

我有一些長時間運行的過程,在此期間我想將我的管理網址指向一些「一個進程正在運行,請稍後再回來」的模板。如何更改我的管理網址動態指向的視圖?

在我的urls.py我:

url(r'^admin/', include(admin_site.urls)), 

我知道我可以創建中,我可以檢查我的進程是否正在運行的看法,但我不知道怎麼在我看來,使用include(admin_site.urls)

回答

0

我會寫一個MiddleWare。喜歡的東西:

from django.http import HttpResponseRedirect 

class LongProcessMiddleware(object): 

    def process_request(self, request): 
     running_long_process = True # some logic 
     if running_long_process and request.get_full_path().startswith('/admin'): 
      return HttpResponseRedirect('/temporary-disabled-message') 
     return None 

settings.py中

​​
0

你並不需要使用 「包括(admin_site.urls)」 在您的視圖。 在您的urls.py文件中,檢查您的進程是否正在運行,然後添加正確的管理網址。 是這樣的:

from myapp import CheckIfProcessRunning 

process = CheckIfProcessRunning() 

if process : 
    urlpatterns += patterns('', 
     url(r'^admin/', include('myapp.comebacklater')), 
    ) 

else : 
    urlpatterns += patterns('', 
     url(r'^admin/', include('myapp.myadminurl')), 
    )