Django: session_key - пустая строка

Я использую платформу аналитики для отслеживания взаимодействия с пользователями и хочу связать события по идентификатору сессии, чтобы я мог отслеживать поведение отдельных пользователей. Поэтому я использую request.session.session_key в качестве идентификатора пользователя, который я передаю функции регистрации событий. Я не использую сессию ни для чего другого, не сохраняю и не изменяю переменные. Я правильно настроил промежуточное ПО, пока все хорошо.

Однако, когда я проверяю платформу аналитики, я вижу, что id часто (но не всегда) пуст. Я просмотрел некоторые ответы и подумал, что смогу решить эту проблему, запустив request.session.save() перед доступом к session_key. Однако я не могу выполнить .save(), потому что я не изменяю никаких переменных сессии, поэтому Django выдает ошибку.

Что нужно сделать, чтобы сессия всегда имела id?


Некоторый код из моего очень простого представления get:

def get(self, req: HttpRequest):
        form = self.form_class(None)
        # this is where I tried req.session.save()
        mixpanel.track(
            req.session.session_key,
            "Form Page Displayed",
            {"path": req.path, "route": req.method},
        )
        return render(req, self.template_name, {"form": form})
Вернуться на верх