Как я могу обновить набор запросов при использовании в браузере кнопки «Назад»? - PullRequest
1 голос
/ 04 июля 2019

Я использую django для создания простого веб-сайта, и частично на нем можно щелкнуть сообщение и пометить его как прочитанное, что также приводит к появлению подробной страницы с заголовком и телом сообщения.Однако, когда я нажимаю кнопку «Назад», она остается непрочитанной, пока я не обновлю страницу.Я проверил файл sqlite, и он показывает, что он уже прочитан (я использую простое логическое поле), но на странице его нет, пока он не обновится.

Я попытался обновить страницучтобы убедиться, что поле имеет правильное значение, но я не уверен, куда идти дальше.

Раздел моего кода, который переносит пользователя на страницу сведений о сообщении, выглядит следующим образом:

def messages(request):
    user = request.user
    sent_messages = Message.objects.filter(sender=user.id)
    unread_messages = Message.objects.filter(recipient=user.id, read=0)
    read_messages = Message.objects.filter(recipient=user.id, read=1)
    context = {
        'sent_messages': sent_messages,
        'unread_messages': unread_messages,
        'read_messages': read_messages,
    }
    return render(request, 'messenger/messages.html', context)

Он должен автоматически отправлять сообщение в непрочитанный раздел на странице, но этого не произойдет, пока страница не будет явно перезагружена.

1 Ответ

0 голосов
/ 04 июля 2019

Этот фрагмент JavaScript должен решить вашу проблему.(https://stackoverflow.com/a/56851042/2099689)

var perfEntries = performance.getEntriesByType("navigation");

if (perfEntries[0].type === "back_forward") {
    location.reload(true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...