1

長時間実行されているプロセスがあり、その間にすべての管理URLに「プロセスが実行されています。後で戻ってください」テンプレートを指定したいと思います。

私のurls.pyには次のものがあります。

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

プロセスが実行されているかどうかを確認できるビューを作成できることは知っていますが、ビューでの使用方法がわかりませんinclude(admin_site.urls)

4

2 に答える 2

0

ミドルウェアを書きます。何かのようなもの:

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',
)
于 2012-09-20T21:14:26.740 に答える
0

ビューで「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')),
    )
于 2012-09-20T21:19:30.810 に答える