Шаблоны Django: используйте переменные контекста внутри `{% include ... with ...}` для динамического оператора - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу реализовать переменные из контекста внутри оператора include. Код:

views.py

    historic_trends_parameters = {'kpi':'kpi_name',
                                  'dimension':'dimension_name'}

    context = {'historic_trends_parameters':historic_trends_parameters}
    return render(request,
                  'homepage.html',
                  context=context)

Шаблон, который я хочу вставить в оператор include:

myTemplate. html

   <div class='MyClass'>
     <object class='tableauViz' width='{{ width }}' height='{{ height }}' style='display:none;'>
        <param name='show_tabs' value='{{ show_tabs }}' />
        <param name='filter' value='{{ filter_values }}' />
     </object>
  </div>

homepage.html

// some code

<div>
{% include "myTemplate.html" with 
           width='700' height='400' show_tabs='yes' 
           filter='KPIParameter=historic_trends_parameters.kpi' %}
</div>

// some more code

Результаты:

Когда я активирую django иперейдите к homepage, это то, что я вижу на странице Источник:

   <div class='MyClass'>
    <object class='tableauViz' width='700' height='400' style='display:none;'>
        <param name='show_tabs' value='yes' />
        <param name='filter' value='KPI Parameter=historic_trends_parameters.kpi' />
    </object>
  </div>

Я не нашел способ передать значение historic_trends_parameters.kpi из context правильно.

Мой желаемый результат должен быть:

   <div class='MyClass'>
    <object class='tableauViz' width='700' height='400' style='display:none;'>
        <param name='show_tabs' value='yes' />
        <param name='filter' value='KPI Parameter=kpi_name' />
    </object>
  </div>

Значение historic_trends_parameters.kpi превращается в 'kpi_name'

...