首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django缓存用户对象

Django缓存用户对象
EN

Stack Overflow用户
提问于 2021-11-05 08:08:44
回答 1查看 41关注 0票数 1

我们的网站有时会有大约600名经过认证的用户试图在5分钟的时间内注册一个事件。我们有一个带有1个CPU和1 1GB的VPS。在这些时刻,网站速度变慢,并给出502错误。

出于这个原因,我在FileBasedCache中使用了每个站点的缓存。这非常好用,压力测试也很好用。

但是,当人们登录时,他们会被重定向到他们的个人资料。代码如下:

代码语言:javascript
运行
复制
class UserRedirectView(LoginRequiredMixin, RedirectView):

    permanent = False

    def get_redirect_url(self):
        return reverse("users:detail", kwargs={"membership_number": self.request.user.membership_number})

用户被重定向到具有其membership_number url

代码语言:javascript
运行
复制
class UserDetailView(LoginRequiredMixin, DetailView):

    model = User
    slug_field = "membership_number"
    slug_url_kwarg = "membership_number"

一些用户报告说,他们在登录后被重定向到其他人的个人资料。

这是怎么回事?如何防止网站的用户特定部分被缓存?例如,用户还可以看到特定于他们所在组的事件列表。换句话说,每个用户应该看到不同的列表。

有什么想法吗?最佳实践?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-05 09:07:26

您应该能够改变cookie上的缓存,以便登录的用户(假设基于cookie的身份验证)获得另一个缓存键。

代码语言:javascript
运行
复制
from django.views.decorators.vary import vary_on_cookie
@vary_on_cookie
def my_view(request):
    pass

https://docs.djangoproject.com/en/dev/topics/cache/#controlling-cache-using-other-headershttps://docs.djangoproject.com/en/dev/topics/cache/#using-vary-headers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69850170

复制
相关文章

相似问题

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