我通过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
时可能会丢失上下文。
任何想法?
感谢您的阅读。
这正是我需要的,谢谢! –