为什么会话没有在我的Django应用程序中保留?

时间:2018-03-14 14:30:01

标签: django heroku session-cookies django-authentication heroku-postgres

我在Heroku上的登台服务器上运行了一个Django(1.11.8)应用程序。

我使用现有记录,用户等导入数据库,这一切似乎都运行良好。

登录时,我有时会返回登录页面。其他时候我已登录,并且我已重定向到用户个人资料页面。但是,如果我之后做了什么,我最终会退出。

我尝试确保Cookie的名称不会与生产应用程序发生冲突(工作正常)。

我还通过shell检查了Session记录。当我设法登录时,它似乎不会创建任何新的会话记录。为了确保我清除了所有会话记录,并且在我登录时没有创建新记录。

数据库连接似乎很好,因为我可以通过注册创建用户记录。我也能够通过shell手动创建会话记录。我只是看不到因登录页面而创建的内容。

任何想法都赞赏?

编辑:

因此,在已安装的应用中,我使用:

'django.contrib.admin', 'django.contrib.auth', 'django.contrib.sessions'

发动机:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

在中间件中:

'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',

EDIT2:OH。

好的,所以我读了会话引擎的事情:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

https://docs.djangoproject.com/en/1.11/topics/http/sessions/#using-cached-sessions

由于我使用缓存而不是开发中的数据库,这可以解释为什么我没有看到数据库中发生的任何事情。我猜测Heroku中的缓存存在问题。

1 个答案:

答案 0 :(得分:1)

关闭缓存存储在Heroku上不起作用,这个答案清除了所有内容:Django Session Not Working on Heroku