在模板中的django中实现倒计时
Implementing countdown in django in template
我有一个 bootstrap 模板,其中已经实现了倒计时。时间是硬编码的,如下所示。
<div data-countdown="2020/03/01"></div>
在这里,如果我将数字更改为 2020,它会显示计算的时间。但我不想要这个硬编码的时间或数字。我想从我的 DateTime 字段中输入我的实际时间。那么如何将我的 DateTime 变量作为模板变量,并将其作为上面 data-countdown 属性的参数呢?就像我们对 {{}} 所做的那样。
您可以将日期时间字段中的日期放入呈现此页面的视图的上下文中,并使用 {{}}
在模板中访问它们
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>
像这样使用 django 模板过滤器
<div data-countdown="{{ datetime_from_context|date:"Y/m/d" }}"></div>
如果您想更改格式,请使用此作为参考:
https://simpleisbetterthancomplex.com/references/2016/06/21/date-filter.html
假设您的 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'
我有一个 bootstrap 模板,其中已经实现了倒计时。时间是硬编码的,如下所示。
<div data-countdown="2020/03/01"></div>
在这里,如果我将数字更改为 2020,它会显示计算的时间。但我不想要这个硬编码的时间或数字。我想从我的 DateTime 字段中输入我的实际时间。那么如何将我的 DateTime 变量作为模板变量,并将其作为上面 data-countdown 属性的参数呢?就像我们对 {{}} 所做的那样。
您可以将日期时间字段中的日期放入呈现此页面的视图的上下文中,并使用 {{}}
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>
像这样使用 django 模板过滤器
<div data-countdown="{{ datetime_from_context|date:"Y/m/d" }}"></div>
如果您想更改格式,请使用此作为参考: https://simpleisbetterthancomplex.com/references/2016/06/21/date-filter.html
假设您的 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'