2016-08-20 3 views
0

Этого достаточно для фиксированной переменной, которую мы уже знаем.Создание динамических переменных шаблона Django внутри тега JavaScript Javascript

<script type="text/javascript"> 
    var a = "{{someDjangoVariable}}"; 
</script> 

У меня есть один сценарий, где я хотел бы создать переменную динамически. например -

<script type="text/javascript"> 
for (i = 1, bar = bar , textb = ""; i <= bar ; i++) 
    { 
    for (j = 1, category = category , textc = ""; j <= category ; j++) 
    { 
     var a = "{{someDjangoVariable + i + j}}"; 
     // Do some more stuff here in UI - create input field dynamically 
    } 
    } 
</script> 

В моем Словаре запроса позволяет сказать, у меня есть эта структура (2 * 2 матричная структура) - {'someDjangoVariable11' : 1, 'someDjangoVariable12' : 23, 'someDjangoVariable21': 256, 'someDjangoVariable22': 31}

Просьба предложить, если есть способ создать переменные динамически.

P.S - Столбцы и строки матрицы могут различаться в соответствии с Пользовательский ввод. Это может быть 2 *3, 4 * 3, 1 * 5 и т. Д.

+0

Этот вопрос, кажется, предает фундаментальное непонимание того, как работают шаблоны и JS, а также разница между серверным и внешним кодом. –

+0

@ DanielRoseman: Я отредактировал этот вопрос, дайте мне знать, если все еще не понятно. Благодаря!! –

+0

Я понял вопрос; недоразумение, о котором я говорил, было вашим. –

ответ

0

Этот подход не будет работать, поскольку переменные на стороне клиента не смогут вернуться к серверу. Я бы предложил отправить обратно словарь переменных с сервера.

сторона сервера:

data = {'foo': '1', 'bar': '2'} 
return render('template.html', data) 

стороны клиента:

<script> var data = {{data|json|safe}}; </script> 

Тогда вы можете получить доступ к нему в JavaScript с оригинальными ключами словарей.

+1

Кроме того, вы можете преобразовать данные в строку с помощью json.dumps() на стороне сервера, а затем отправить эти данные в виде строки, которая устраняет необходимость в фильтре json в шаблоне. –

+0

Можете ли вы ответить на это. Я был не очень ясен на этом посту. http://stackoverflow.com/questions/39067756/creating-dynamic-django-template-variables-names-inside-javascript-script-tag –

Смежные вопросы