From ae506181f7fb9d9e74f4935686540bef29b60255 Mon Sep 17 00:00:00 2001 From: sarahboyce Date: Sat, 26 Mar 2022 20:54:48 +0100 Subject: [PATCH] Fixed #32129 -- Adjusted the docs for session expiry helpers. Updated the docs for `get_session_cookie_age`, `get_expiry_age`, and `get_expiry_date` to clarify their intended usage by session backends when saving the session. --- AUTHORS | 1 + docs/topics/http/sessions.txt | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 1f96c6700c..6f0096e7cb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -847,6 +847,7 @@ answer newbie questions, and generally made Django that much better: Sander Dijkhuis Sanket Saurav Sanyam Khurana + Sarah Boyce Sarthak Mehrish schwank@gmail.com Scot Hacker diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index c36554f22c..c5c78a263a 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -247,8 +247,8 @@ You can edit it multiple times. .. method:: get_session_cookie_age() - Returns the age of session cookies, in seconds. Defaults to - :setting:`SESSION_COOKIE_AGE`. + Returns the value of the setting :setting:`SESSION_COOKIE_AGE`. This can + be overridden in a custom session backend. .. method:: set_expiry(value) @@ -288,13 +288,28 @@ You can edit it multiple times. ``None``. Defaults to the value stored in the session by :meth:`set_expiry`, if there is one, or ``None``. + .. note:: + + This method is used by session backends to determine the session expiry + age in seconds when saving the session. It is not really intended for + usage outside of that context. + + In particular, while it is **possible** to determine the remaining + lifetime of a session **just when** you have the correct + ``modification`` value **and** the ``expiry`` is set as a ``datetime`` + object, where you do have the ``modification`` value, it is more + straight-forward to calculate the expiry by-hand:: + + expires_at = modification + timedelta(seconds=settings.SESSION_COOKIE_AGE) + .. method:: get_expiry_date() Returns the date this session will expire. For sessions with no custom expiration (or those set to expire at browser close), this will equal the date :setting:`SESSION_COOKIE_AGE` seconds from now. - This function accepts the same keyword arguments as :meth:`get_expiry_age`. + This function accepts the same keyword arguments as + :meth:`get_expiry_age`, and similar notes on usage apply. .. method:: get_expire_at_browser_close()