У меня есть шаблон начальной загрузки, где обратный отсчет уже реализован. И время жестко закодировано, как показано ниже.

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

Здесь, если я изменю число, например, 2020, оно покажет расчетное время. Но мне не нужно было это жестко запрограммированное время или число. Я хочу указать свое фактическое время из полей DateTime. Итак, как я могу использовать свою переменную DateTime в качестве переменной шаблона и поместить ее в качестве параметра атрибута обратного отсчета данных выше? Как и с {{}}.

0
Ajmal Aamir 28 Янв 2020 в 09:50

3 ответа

Лучший ответ

Используйте шаблонный фильтр Django, как это

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

Используйте это как справочную информацию, если вы хотите изменить формат: https://simpleisbetterthancomplex.com/references/2016/06/21/ date-filter.html

0
Lag11 28 Янв 2020 в 07:09

Допустим, что значение вашего 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'
0
Nalin Dobhal 28 Янв 2020 в 07:18

Вы можете поместить даты из ваших полей datetime в контекст представления, отображающего эту страницу, и получить к ним доступ в шаблоне, используя {{}}

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>
1
ahereza 28 Янв 2020 в 07:06