我有DetailView
我在其中呈现有关models.Auction
对象的详细信息,包括expires参数(使用jquery.countdown
到倒计时时间& fire事件在完成后)。
以下是倒计时和代码的代码。完成活动:
<script>
$('#clock').countdown('{{ auction.get_time_left }}', function(event) {
$(this).html(event.strftime('%D {% trans "day/days" %} %H:%M:%S'));
}).on('finish.countdown', function(){
setTimeout(function(){ location.reload()}, 1500);
});
</script>
在视图中,我检查是否:
if datetime.now() >= context['auction'].expires:
,我渲染了另一个模板;
但出于某些原因location.reload()
,它不会检查该条件(跳过它)并呈现相同的模板(时间已过期)。
附:我也试过在终端上打印一些东西(但它也会跳过打印)
答案 0 :(得分:0)
默认情况下,reload()
方法会从缓存中重新加载页面,但您可以通过将forceGet参数设置为true来强制它从服务器重新加载页面:
location.reload(true).
答案 1 :(得分:0)
我忘了将秒数传递到jquery倒计时(只有几天,几小时,几分钟),这就是为什么视图中的计算与倒计时结束不匹配的原因。