27 июня 2013 г.

django: шаблонизатор не отображает defaultdict

Проблема

Шаблонизатор Django некорректно отображает словарь, созданный через defaultdict. На этот счёт есть тикет #16335.

Почему

В конструкции
{% for key, value in defdict.items %}
django сначала пытается найти defdict['items'], на что ему defaultdict возвращает пустой список.

Решение

Превращать во вьюшке defaultdict в dict:
dict(defdict)
Либо попортить default_factory ему (после окончательного заполнения, разумеется), что выглядит более оптимальным способом:
defdict.default_factory = None

Комментариев нет:

Отправить комментарий