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
было бы более уместно.