2010-04-25 166 views
3

我正在使用Django 1.0.2並試圖弄清楚如何讓@login_required正常工作。當使用默認的LOGIN_URL時,django是否考慮了SCRIPT_NAME

當我使用內置服務器時,它會按照預期重定向到settings.py中定義的默認login_url或我的LOGIN_URL。

什麼是不明白的是如何部署到我的網站不在根目錄的服務器。在我的模板中,我使用url模板標記,並在視圖中訪問request.META ['SCRIPT_NAME'],但由於某種原因,它似乎不適用於所使用的LOGIN_URL。

我錯過了什麼?

謝謝。

回答

2

有一個名爲FORCE_SCRIPT_NAME的設置,您應該使用該設置來設置腳本的位置(如果它不在根目錄中)。你可以把它添加到登錄/退出網址:

# This is needed because we're running the app in non-root directory of web server 
FORCE_SCRIPT_NAME = '/myapp.cgi/' 

LOGIN_URL = FORCE_SCRIPT_NAME + 'accounts/login/' 
LOGOUT_URL = FORCE_SCRIPT_NAME + 'accounts/logout/' 

參考:https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name

相關問題