在location.reload()之后,Django视图无法正确呈现

时间:2016-11-22 11:55:54

标签: jquery django django-templates django-views jquery-countdown

我有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(),它不会检查该条件(跳过它)并呈现相同的模板(时间已过期)。
附:我也试过在终端上打印一些东西(但它也会跳过打印)

2 个答案:

答案 0 :(得分:0)

默认情况下,reload()方法会从缓存中重新加载页面,但您可以通过将forceGet参数设置为true来强制它从服务器重新加载页面:

location.reload(true).

答案 1 :(得分:0)

我忘了将秒数传递到jquery倒计时(只有几天,几小时,几分钟),这就是为什么视图中的计算与倒计时结束不匹配的原因。