Django шаблон if внутри цикла for с индексацией списка

Я хочу получить значения списка, используя индексы списка.

У меня есть список в файле views.py

views.py


def home(request):

 my_list=[("xy","abc","abcd"),("abcd","abc","xy")]
 
 context={ "list"=my_list}

return render(request, 'index.html',context)

index.html


{% for id in list%}
  
    {% if id.1 =='abc' %}

          {{id.0}}="Core user" 
           
          {{id.0}}

    {% else %}

       {{id.0}}

    {% endif %}

{% endfor %}
 

Итак, если условие удовлетворяется, то новые значения списка будут

[("xy", "Основной пользователь", "abcd"),("abcd", "Основной пользователь", "xy")]

Я получаю синтаксические ошибки для этого. Пожалуйста, сообщите мне, что я делаю неправильно и как это решить?

Тип данных кортежа не может быть изменен.

Итак, преобразуем тип данных кортежа в тип данных массива.

и я рекомендую custom tag и {% с %} с Shallow Copy

в файле views.py

my_list=[["xy","abc","abcd"],["abcd","abc","xy"]]

в custom.py

def set_core_user(my_list: list[str]) -> list[str]:
    my_list[1] = "Core user"
    return my_list

В html

{% for id in list%}

{% if id.1 =='abc' %}

      {{id.0}}="Core user" 
       
      {{id|set_core_user}}

{% else %}

   {{id.0}}

{% endif %}

{% endfor %}
Вернуться на верх