【问题标题】:Implementing countdown in django in template在模板中的django中实现倒计时
【发布时间】:2020-05-13 13:20:59
【问题描述】:

我有一个已实现倒计时的引导模板。时间是硬编码的,如下所示。

<div  data-countdown="2020/03/01"></div>

在这里,如果我更改像 2020 这样的数字,它会显示计算出的时间。但我不想要这个硬编码的时间或数字。我想从我的 DateTime 字段中输入我的实际时间。那么如何将我的 DateTime 变量用作模板变量并将其作为上面 data-countdown 属性的参数呢?就像我们对 {{}} 所做的那样。

【问题讨论】:

  • 是什么让您认为它与任何其他模板 var 的工作方式不同???

标签: django django-templates django-template-filters


【解决方案1】:

假设您的DateTimeField 的值为datetime.datetime(2020, 1, 28, 12, 36, 56, 310538)。因此,您可以通过以下方式获取视图中的日期:

def your_view(request):
    some_date_time_obj = datetime.datetime(2020, 1, 28, 12, 36, 56, 310538)
    date_from_date_time = some_date_time_obj.date() # will return datetime.date(2020, 1, 28)
    return render(request, 'your_template.html', {'date': data})

在您的模板中,您可以通过以下方式设置该值:

<div  data-countdown="{{ date }}"></div>

如果你想要YYYY/MM/DD 格式的日期,那么你可以像这样调用strftime() 方法:

date_from_date_time = some_date_time_obj.date().strftime('%Y/%m/%d') # will return '2020/01/28'

【讨论】:

    【解决方案2】:

    像这样使用 django 模板过滤器

    <div data-countdown="{{ datetime_from_context|date:"Y/m/d" }}"></div>
    

    如果您想更改格式,请将此作为参考: https://simpleisbetterthancomplex.com/references/2016/06/21/date-filter.html

    【讨论】:

      【解决方案3】:

      您可以将日期时间字段中的日期放入呈现此页面的视图的上下文中,并使用 {{}} 在模板中访问它们

      def some_view(request):
          # get your dates here, assuming from some model object
          date = "some date you got"
          return render(request, 'app/template_name.html', {'countdown_date': date}
      

      在模板中

      <div data-countdown="{{countdown_date}}"></div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-22
        • 1970-01-01
        • 2022-11-18
        • 2020-12-14
        • 2011-07-29
        • 2012-05-26
        • 2017-08-13
        • 2018-03-01
        相关资源
        最近更新 更多