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 %}