Soraphis
Soraphis

Reputation: 766

stop django from logging out after source changes

I'm working on a django project and since a few days django keeps logging me of after I change a source file.

The expire date in the cookies and in the database show that theres still 1 month left.

Even after making the change the session cookie is the same as in the database but I have to login again. and after logging in both sessionids (database and browser) change.

I'm using django 1.8.5

edit: some session related settings:

SESSION_EXPIRE_AT_BROWSER_CLOSE        False
SESSION_COOKIE_HTTPONLY                True
SESSION_COOKIE_DOMAIN                  None
SESSION_SAVE_EVERY_REQUEST             False
SESSION_COOKIE_SECURE                  False

edit2:

Just to be a bit more clear: After changing some source file (python files, templates work just fine) the server will reload (if I use --noreload, I have to do it manually to get the changes), after that everyone is logged out.

edit3:

CACHES              {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
SESSION_ENGINE      'django.contrib.sessions.backends.db'

Upvotes: 7

Views: 902

Answers (1)

ppetrid
ppetrid

Reputation: 3845

Django has a SESSION_ENGINE setting that controls how the session information is stored on the server. One of the options is django.contrib.sessions.backends.cache, which stores session information only in cache memory.

Now, there's a certain cache backend - django.core.cache.backends.locmem.LocMemCache -, which stores information in the local python memory (for more info see CACHES). This cache backend is a typical choice for development, and of course resets each time the server is reloaded.

Using these two settings together would perfectly explain the situation you describe. Hope this helps!

Upvotes: 1

Related Questions