Code

Opened 11 months ago

Closed 5 days ago

#20863 closed Cleanup/optimization (wontfix)

Clarify which session backends require django.contrib.sessions in INSTALLED_APPS

Reported by: Keryn Knight <django@…> Owned by: nobody
Component: Documentation Version: master
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Between #20444 and #20418, the cookie based sessions now includes useful notes explaining how cookies differ, and specifically, there is a note which reads:

When using cookies-based sessions django.contrib.sessions can be removed from INSTALLED_APPS setting because data is loaded from the key itself and not from the database, so there is no need for the creation and usage of django.contrib.sessions.models.Session table.

In light of that explanation, it's not clear why it is singled out as the only one that can remove django.contrib.sessions from the INSTALLED_APPS. Can any of the others? The answer is, according to the documentation ... unclear; there is a paragraph at the end of the cached sessions docs which suggests using cached_db requires following the database sessions setup, which involves having django.contrib.sessions installed. So by implication, using the cached backend (rather than the cached_db) shouldn't require following the same setup requirements. The file based caching gets such a cursory mention, it could go either way.

As part of the ticket, I think the highlighted point about the cached_db requirements ought to be a Sphinx .. note::, as it is only in reading & re-reading these docs to draft this ticket that I noticed it.

Attachments (0)

Change History (7)

comment:1 Changed 11 months ago by timo

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted
  • Type changed from Uncategorized to Cleanup/optimization

comment:2 Changed 10 months ago by EvilDMP

  • Easy pickings set

comment:3 Changed 9 months ago by timo

  • Summary changed from Sessions backend changing could be clearer to Clarify which session backends require django.contrib.sessions in INSTALLED_APPS

As far as I can tell, only db and cached_db require the INSTALLED_APPS entry.

comment:4 follow-up: Changed 8 months ago by jdetaeye@…

Also the unit test framework refers to django.contrib.sessions.

I read the same sentence in the documentation, and removed django.contrib.sessions from my INSTALLED_APPS. My tests all started to fail.
After some analysis I found the methods django.test.client.login and django.test.client._session don't behave the same any more.

Either the documentation needs some extra note on this, or (preferably imho) a seperate ticket needs to be filed to make the test framework work better also without django.contrib.sessions in the INSTALLED_APPS setting.

comment:5 in reply to: ↑ 4 Changed 8 months ago by anonymous

See ticket #20915 on this dependency.

Last edited 5 months ago by timo (previous) (diff)

comment:6 Changed 5 months ago by timo

  • Easy pickings unset

comment:7 Changed 5 days ago by timo

  • Resolution set to wontfix
  • Status changed from new to closed

I removed the advice of removing django.contrib.sessions from INSTALLED_APPS as a solution to avoid creating the database tables due to the other side effects and filed a new ticket (#22986) for a proper solution.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.