我通過django寫了一個webservices應用程序。這個應用程序可以在我們的服務器上找到幾個實例。Django:使用urlresolver設置cookie路徑
例如:
http://server1/testapp/
http://server2/sandboxapp/
http://server2/productionapp/
該應用實例通過mod_wsgi的託管在apache2的。
我對所有這些實例都使用cookie身份驗證,並希望每個cookie都不與其他cookie重複。我需要設置SESSION_COOKIE_PATH值。
發生這種情況時,我不知道應用程序部署後的URL。所以我想使用反向網址來猜測這個值。
我的主要urls.py
看起來像這樣:
urlpatterns = patterns('',
(r'admin/', include(admin.site.urls)),
url(r'^$', view_server_root, {}, name='server_root'),
),
# here I also includes urls from the various sub-apps
for app in apps:
urlpatterns.append(url(urlprefix, include(app.urls))
我加入此位的所有URL被加載後:
from django.core import urlresolvers
from django.conf import settings
settings.SESSION_COOKIE_PATH = urlresolvers.reverse('server_root')
不幸的是urlresolvers.reverse('server_root')
回報/
,而不是預期的,例如,/testapp/
。如果我登錄到每個實例,我的cookie會重疊。
儘管在後面的應用程序使用情況中,我使用django.db.models.permalink
來獲取某些視圖,這會返回一個正確的前綴URL(例如/testapp/page/465
)。
執行urls.py
時可能會丟失上下文。
任何想法?
感謝您的閱讀。
這正是我需要的,謝謝! –