我有一些長時間運行的過程,在此期間我想將我的管理網址指向一些「一個進程正在運行,請稍後再回來」的模板。如何更改我的管理網址動態指向的視圖?
在我的urls.py我:
url(r'^admin/', include(admin_site.urls)),
我知道我可以創建中,我可以檢查我的進程是否正在運行的看法,但我不知道怎麼在我看來,使用include(admin_site.urls)
。
我有一些長時間運行的過程,在此期間我想將我的管理網址指向一些「一個進程正在運行,請稍後再回來」的模板。如何更改我的管理網址動態指向的視圖?
在我的urls.py我:
url(r'^admin/', include(admin_site.urls)),
我知道我可以創建中,我可以檢查我的進程是否正在運行的看法,但我不知道怎麼在我看來,使用include(admin_site.urls)
。
我會寫一個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中
你並不需要使用 「包括(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')),
)