Многострочное условие if в шаблонах Django - PullRequest
0 голосов
/ 03 июля 2018

Моя инструкция if в шаблоне django слишком длинная. Я хочу разбить это на несколько строк.

    {% if ABCDEFGH == BENDHSS and asdasd == asdasdas or asasdas == asdasdd and dasdasdsa == asdasdass or ghgfgsd == efdscsdfg and sgrtvsd == acsdfer %}

Я хочу разбить приведенную выше строку кода на несколько строк. В питоне мы разбиваем его обратной косой чертой ("\").

    if ABCDEFGH == BENDHSS and asdasd == asdasdas or \
        asasdas == asdasdd and dasdasdsa == asdasdass or \
        ghgfgsd == efdscsdfg and sgrtvsd == acsdfer:

Может кто-нибудь дать мне знать, как мы это делаем в Джанго?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы не можете разделить это выражение в теге if, но вы можете назначить выражение в своем коде Python новой переменной и вместо этого передать его в шаблон. например,

new_var = ABCDEFGH == BENDHSS and asdasd == asdasdas or \
          asasdas == asdasdd and dasdasdsa == asdasdass or \
          ghgfgsd == efdscsdfg and sgrtvsd == acsdfer:

и затем передайте new_var в шаблон.

0 голосов
/ 03 июля 2018

К сожалению, вы не можете. Вместо использования этих длинных имен вы можете сделать это

{% with a as ABCDEFGH %}
{% with b as BENDHSS %}
{% with c as asdasdas %}
.
.
.
.

   {% if a == b and asdasd == c or asasdas == asdasdd and dasdasdsa == asdasdass or ghgfgsd == efdscsdfg and sgrtvsd == acsdfer %}

{% endwith %}
{% endwith %}
{% endwith %}

Этот обходной путь достаточно хорош, если вы хотите летать под радаром линтеров.


Или вы можете передать эти переменные в списке и перебрать их

...