我正在使用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)
它应该自动将消息发送到页面上的未读部分,但是除非明确地重新加载页面,否则它不会这样做。
答案 0 :(得分:0)
此javascript代码段应可以解决您的问题。 (https://stackoverflow.com/a/56851042/2099689)
var perfEntries = performance.getEntriesByType("navigation");
if (perfEntries[0].type === "back_forward") {
location.reload(true);
}