Множественный django с оператором «if внутри оператора if» - PullRequest
1 голос
/ 04 ноября 2019

У меня есть Django, кратное 'с утверждениями внутри' if / elif '. Блоки кода внутри if / elif одинаковы, за исключением одной переменной slide1_line2. Мне интересно, есть ли способ переписать код, чтобы избежать повторения.

{% if country == 'England' or country == 'Wales'%}              
{% with graphic='map.png' %}
{% with classes='color-1' %}
{% with slide1_line1='Your constituency is '|add:name %}
{% with slide1_line2='Heading1' %}
{% with slide1_line3='text' %}
{% with icon='keyboard_arrow_down' %}
{% include 'slide_map.html' %}
{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}

{% elif country == 'Scotland' or country == 'Northern Ireland' %}               
{% with graphic='map.png' %}
{% with classes='color-1' %}
{% with slide1_line1='Your constituency is '|add:name %}
{% with slide1_line2='Heading2' %}
{% with slide1_line3='text' %}
{% with icon='keyboard_arrow_down' %}
{% include 'slide_map.html' %}
{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}

{% endif %}

1 Ответ

1 голос
/ 04 ноября 2019

Вы можете выделить общие значения вне оператора if:

{% with graphic='map.png' classes='color-1' slide1_line1='Your constituency is '|add:name slide1_line3='text' icon='keyboard_arrow_down' %}
  {% if country == 'England' or country == 'Wales' %}
    {% include 'slide_map.html' with slide1_line2='Heading1' %}
  {% else %}
    {% include 'slide_map.html' with slide1_line2='Heading2' %}
  {% endif %}
{% endwith %}

Обратите внимание, что:

  1. вы можете определить несколько переменных в одной и той же {% with … %} шаблон тега [Django-doc]
  2. шаблонный тег {% include … %} [Django-doc] может содержать предложение {% include … with … %} для передачи определенных дополнительных параметров.
...