Django: как перенести массив в JavaScript без U '? - PullRequest
1 голос
/ 22 ноября 2011

просмотров:

'some_array': ['text1','text2', 'text3']

Когда я пытаюсь перенести его в шаблоне в скрипт js:

<script type="text/javascript">
    some_func({{ some_array }});
</script>

В исходном коде это выглядит так:

<script type="text/javascript">
    some_func([u'text1', u'text2', u'text3']);
</script>

Так что это ошибка в JavaScript.

Как удалить префикс u'' из элементов массива или как обойти это?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

Когда вы переносите список Python в строку, вы создаете представление Python для вашей переменной (__repr__).Здесь вы пытаетесь создать представление JavaScript для тех же данных.

JSON - отличный способ передачи данных, потому что во многих языках есть хорошие парсеры JSON.В случае JavaScript это еще более верно, поскольку JSON на самом деле является собственным синтаксисом JavaScript, поэтому вы можете поместить представление JSON прямо в источник JavaScript.

Чтобы сгенерировать JSON, вы можете использовать встроенную библиотеку JSON Python(Python 2.6 +).

>>> import json
>>> json.dumps([u'text1', u'text2', u'text3'])
'["text1", "text2", "text3"]'

Это создает строку, которую можно использовать в вашем шаблоне.

3 голосов
/ 22 ноября 2011

Преобразовать структуру данных в строку JSON и использовать ее вместо этого.

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