首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django:使用urlresolver设置cookie路径

Django:使用urlresolver设置cookie路径
EN

Stack Overflow用户
提问于 2012-05-25 12:24:31
回答 1查看 564关注 0票数 2

我在django上写了一个webservices应用程序。这个应用程序可以在我们的服务器上找到几个实例。

例如:

代码语言:javascript
运行
AI代码解释
复制
http://server1/testapp/
http://server2/sandboxapp/
http://server2/productionapp/

应用程序实例通过mod_wsgi托管在apache2上。

我对所有这些实例都使用cookie身份验证,并希望每个实例的cookie不要与其他实例重叠。我需要设置SESSION_COOKIE_PATH的值。

碰巧的是,我事先不知道应用程序部署在其后面的URL。所以我想用一个反向url来猜测这个值。

我的主urls.py如下所示:

代码语言:javascript
运行
AI代码解释
复制
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))

在加载完所有urls后,我添加了以下内容:

代码语言:javascript
运行
AI代码解释
复制
from django.core import urlresolvers
from django.conf import settings
settings.SESSION_COOKIE_PATH = urlresolvers.reverse('server_root')

不幸的是,urlresolvers.reverse('server_root')返回的是/,而不是预期的,例如,/testapp/。如果我登录到每个实例,我的cookies会重叠。

不过,在稍后的应用程序使用中,我对一些视图使用了django.db.models.permalink,它会返回一个正确的前缀URL (例如,/testapp/page/465)。

执行urls.py时可能缺少上下文中的某些内容。

有什么想法吗?

感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-25 12:43:06

你是shouldn't change Django settings at runtime。如果您使用的是Django1.4或更高版本,则可以使用reverse_lazy并在settings.py中设置SESSION_COOKIE_PATH

代码语言:javascript
运行
AI代码解释
复制
SESSION_COOKIE_PATH = reverse_lazy('server_root')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10754387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档