Ответ 1
Попробуйте использовать {{ array1|safe }}
и посмотрите, не имеет значения. Я не тестировал это, поэтому надеюсь, что я не слишком зациклен, если это неверно...
Я хочу передать массив в шаблон и впоследствии использовать его с помощью JavaScript.
В моих views.py у меня есть:
arry1 = ['Str',500,20]
return render_to_response('test.html', {'array1': arry1})
И в моем шаблоне:
var array1 = {{ array1 }};
но когда я посещаю веб-сайт, он выводит:
var array1 = ['Str',500,20];
Что мне нужно изменить?
Попробуйте использовать {{ array1|safe }}
и посмотрите, не имеет значения. Я не тестировал это, поэтому надеюсь, что я не слишком зациклен, если это неверно...
Как уже упоминалось, вы можете использовать фильтр безопасности, поэтому Django не дезинфицирует массив и оставляет его как есть.
Другой вариант и, вероятно, лучший в долгосрочной перспективе - использовать модуль simplejson (он входит в состав django) для форматирования вашего списка Python в объект JSON, в который вы можете вернуться обратно в Javascript. Вы можете прокручивать объект JSON так же, как и любой массив.
из django.utils import simplejson
list = [1,2,3, 'String1']
json_list = simplejson.dumps(list)
render_to_response (template_name, {'json_list': json_list})
И в вашем Javascript просто {{json_list}}
В Django:
from django.utils import simplejson
json_list = simplejson.dumps(YOUR_LIST)
И PASS "json_list" В КОНТЕКСТЕ
IN JS:
var YOUR_JS_LIST = {{YOUR_LIST|safe}};
Это можно сделать с помощью сериализаторов ядра django. Все, что вам нужно сделать, это сериализовать ваши данные в json и передать его в шаблон.
data = serializers.serialize("json", <list>)
return render(request, 'view.html', {'data':data})
В шаблоне сохраните этот список в переменной javascript.
var list = {{data|safe}}