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