Django template html как использовать фильтр со значением контекста в качестве строкового аргумента этого фильтра

я пытаюсь сделать что-то вроде этого:

{% for i in list %} <td style="background-color: {{color_rule|get_item:i}}">{{i}}</td> {% endfor %}

где: def get_item(dictionary, key): return dictionary.get(key)

помогите

Согласно документации.

{% for key, i in list.items %}
    {{ key }}: {{ i}}
{% endfor %}

Ключи словаря - строчные буквы, но список - прописные - ключи чувствительны к регистру, поэтому ничего не возвращается. Измените список на строчные буквы или ключи словаря на прописные, и все заработает.

Ссылка на комментарий с дополнительным контекстом:

color_rules = {
   'c':'rgb(87,213,255)',
   'a':'rgb(182,83,248)',
   'g':'rgb(163,196,60)',
   't':'rgb(243, 100, 96)',
},
list = "CAGCCAGACCACAGGCCAGACATGACGTGGAGGCAAGCGGCCACAACGTGGAGGTGGA"

Кроме того, следует избегать именования переменных с помощью функций python, т.е. list() - также список на самом деле не список, а строка. Что-то вроде color_string было бы более уместно.

Вернуться на верх