Как передать формат даты из представления в Python на <script>на HTML-странице - PullRequest
0 голосов
/ 23 сентября 2019

Я установил поле, в котором пользователь может выбрать диапазон дат (Start, End):

if request.method == 'POST':
            fecha = (request.POST.get('datefilter')).split(' - ')
            start = datetime.strptime(
                fecha[0].strip(), "%Y-%m-%d").date()
            end = datetime.strptime(
                fecha[1].strip(), "%Y-%m-%d").date()

, когда я печатаю переменную start после выбора диапазона дат, я получаю правильную дату, которая была выбранапользователь.Теперь мне нужно взять их обоих (начало и конец) и отправить их на страницу HTML, где я собираюсь их использовать, но когда я пытаюсь отправить их так:

return render(request, "path/page.html", {"start": start, "end": end})

и получить их вот таквнутри скрипта на странице HTML

<script>

var start = {{start | safe}};              
        console.log(start);

var end = {{end | safe}};              
        console.log(end);

</script>

вместо даты, которую я пытаюсь отправить из представления, я получаю целое число.

, например.Если я хочу вызвать данные с 25-01-17 по 25-01-18

25-01-17 будет дата начала и 25-01-18 дата окончания, поэтому, когда я печатаю эти переменные вВ представлении, отображаемом в консоли, я получаю правильную дату, выбранную пользователем.

print(start)
print(end)

output:

25-01-17
25-01-18

, но когда я пытаюсь напечатать те же самые переменные в скрипте на html-странице, я получаю что-то другое

console.log(start);
console.log(end);

output:

7
6

Я понял, что происходящее - математическая операция.25 - 01 = 24 - 17 = 7.

Как решить эту проблему?

1 Ответ

0 голосов
/ 23 сентября 2019

Попробуйте просто заключить их в кавычки, если они должны быть строками, например:

<script>

var start = "{{start | safe}}";              
        console.log(start);

var end = "{{end | safe}}";              
        console.log(end);

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...