【问题标题】:Django view doesn't render correctly after location.reload()Django 视图在 location.reload() 后无法正确呈现
【发布时间】:2017-04-06 02:09:03
【问题描述】:

我有一个 DetailView ,我在其中呈现有关我的 models.Auction 对象的详细信息,包括 expires 参数(使用 jquery.countdown 倒计时时间和完成后的触发事件)。

这是倒计时和完成事件的代码:

<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() &gt;= context['auction'].expires:,我渲染了一个不同的模板;

但由于某些原因,当它执行location.reload() 时,它不会检查该条件(跳过它)并呈现相同的模板(时间已过期)。
附言我也尝试在终端中打印一些东西(但它也跳过了打印)

【问题讨论】:

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


    【解决方案1】:

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

    location.reload(true).
    

    【讨论】:

    • 很高兴知道,谢谢。我已经修好了,我忘记将秒数传递给 jquery 倒计时(只有天、小时、分钟),所以这就是视图中的计算与倒计时结束不匹配的原因。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-05
      • 2012-10-20
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多