Hi Guys, I am using sessions in my webapp, and don't want to use a db/file backends as my device has small storage, so, using signed_cookies backend, I need to store and modify per-session data across places and use the session_key to lookup, modify and then save. But every save creates a new session, so, the change isn't propagated to other views.
func_view(request) start_async_oper(func_non_view, args=request.session) # session is created in another view request.session.data = 1 func_view2(request): check (request.session.data == 2) func_non_view(session): session = SessionStore(session_key=session.session_key) session.data = 2 session.save() Session_key is passed from view to non-view and then I am using Sessionstore(session_key) to lookup the session from non-view, and then after modification normally do a save() and from the view, I read updated session values. This logic works if I use either a db/file backend. Also confirmed this behavior by looking at the save() function of various backends. https://github.com/django/django/blob/master/django/contrib/sessions/backends/signed_cookies.py#L41 If I just change the session data (not from a view), but don't do a save I can see that the session_key hasn't changed but obviously the change isn't reflected. The Django version is 1.11 (Default Ubuntu18.04, cannot update) but looks like the signed_cookies code hasn't changed. Looks like a bug to me? am I missing anything? I can move the session update to a view and use some globals but this design keeps it simple by storing the data in the session. Any help is appreciated. Thanks. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/abca3930-31e5-4de2-8200-1ddab80b8734o%40googlegroups.com.

