長時間実行されているプロセスがあり、その間にすべての管理URLに「プロセスが実行されています。後で戻ってください」テンプレートを指定したいと思います。
私のurls.pyには次のものがあります。
url(r'^admin/', include(admin_site.urls)),
プロセスが実行されているかどうかを確認できるビューを作成できることは知っていますが、ビューでの使用方法がわかりませんinclude(admin_site.urls)
。
長時間実行されているプロセスがあり、その間にすべての管理URLに「プロセスが実行されています。後で戻ってください」テンプレートを指定したいと思います。
私のurls.pyには次のものがあります。
url(r'^admin/', include(admin_site.urls)),
プロセスが実行されているかどうかを確認できるビューを作成できることは知っていますが、ビューでの使用方法がわかりませんinclude(admin_site.urls)
。
ミドルウェアを書きます。何かのようなもの:
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で
MIDDLEWARE_CLASSES = (
...
'myproject.middleware.LongProcessMiddleware',
)
ビューで「include(admin_site.urls)」を使用する必要はありません。urls.pyファイルで、プロセスが実行されているかどうかを確認してから、適切な管理URLを追加します。このような :
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')),
)