от
Я использую 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 голосов
от
Этот фрагмент JavaScript должен решить вашу проблему. (Https://stackoverflow.com/a/56851042/2099689)
var perfEntries = performance.getEntriesByType("navigation");

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