﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22634	Making Session model and SessionStore classes more easily extendable	Sergey Kolosov	Sergey Kolosov	"While developing a feature the involves adding an extra database field to the `Session` model (thus creating a new session backend based on Django's one), I faced the need to copy almost everything from `models.py`, `backends/db.py` and `backends/cached_db.py`.

The reason why one have to do that, is the way that `Session` model is imported and used inside `backends/db.py` and `backends/cached_db.py`, and the way `SessionStore` class imported and used inside `models.py`.

Since the custom backend is a part of a shared package, which is intended to be used with multiple versions of Django, it's challenging to do that given the above.

I suggest the following changes:
* extract an abstract base model from `Session`;
* make `Session` class a property of `SessionStore` class, removing hardcoded usages;
* make `key_prefix` a property of `SessionStore`, defaulting to `KEY_PREFIX`;
* (anything else to make building a custom backend based on Django's one easier)."	Cleanup/optimization	closed	contrib.sessions	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
