Надежная навигация по истории маршрутов для кнопки "назад" Django 4.0.3

На каждом из видов моего приложения есть заголовок страницы с хлебными крошками и кнопкой "назад" для возврата к предыдущему виду. Я хотел бы иметь возможность надежно отслеживать & навигацию по истории маршрутизации пользователя, чтобы всегда отсылать его к тому же виду, из которого он пришел.

HTTP_REFERER не учитывает потенциал вложенных представлений. Если вы перейдете со страницы A -> страницы B - страницы C & при использовании кнопки назад на Page C вы попадете на Page B, а затем HTTP_REFERER станет PAGE_C, что отправит пользователя в бесконечный цикл, вместо того чтобы перевести его на Page A при повторном нажатии кнопки назад.

window.history.back() или window.history.go(-1) не учитывает, что кто-то может быть связан непосредственно со страницей B, где кнопка назад отправит его на любую предыдущую страницу в его истории просмотра в течение жизни этой вкладки, а не направит его на страницу A.

Я также пробовал просто жестко кодировать back_route для каждого вида, но это не учитывает, что существует несколько маршрутов, по которым пользователь может быть направлен. Если они заходят на страницу C из страницы A непосредственно, они должны вернуться на страницу A, а не на страницу B

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

Кто-нибудь реализовал подобное решение или имеет какие-либо идеи, которые покрывают проблемы, описанные в других решениях?

Вернуться на верх