Django` with ' тег не распознает аргумент ключевого слова
у меня есть следующий код в моем шаблоне:
{% include "entry_table/cell.html" with data_items = data_fields class="entry_table_title" only%}
что дает мне следующую ошибку:
"with" in 'include' tag needs at least one keyword argument.
Я попытался заменить data_field (который является переменной, которую я передал в контекст) строкой, на всякий случай, если это было причиной проблемы, но даже если я это сделаю:
{% include "entry_table/cell.html" with data_items = "unicorn" class="entry_table_title" only%}
Я все еще получаю ту же ошибку. Единственное, что устраняет проблему, это полностью избавиться от data_items, как в:
{% include "entry_table/cell.html" with class="entry_table_title" only%}
так, что проблема?
примечание: Я только что понял, что data_items также является переменной, которая передается в контекст страницы, вызывающей другой шаблон, но когда я изменил имя на что-то еще, это все равно не сработало. Так что проблема не в этом.
2 ответов
похоже, что Django довольно придирчив к пробелам в этом случае. Если я изменюсь...
{% include "entry_table/cell.html" with data_items = data_fields class="entry_table_title" only%}
...в...
{% include "entry_table/cell.html" with data_items=data_fields class="entry_table_title" only%}
...это работает для меня.
у меня была очень похожая проблема. Только я использовал тире, которые, по-видимому, не разрешены в именах переменных.
Я знаю, что это более старый вопрос, и на него уже достаточно ответили, но это тесно связано и придумывает поиск, поэтому ради потомства ...
{% include "partials/forum-panel-header.html" with forum-name="demo name" forum-thread-count="22" forum-post-count="30" %}
необходимо было изменить тире на подчеркивания ...
{% include "partials/forum-panel-header.html" with forum_name="demo name" forum_thread_count="22" forum_post_count="30" %}
было бы неплохо узнать это, прежде чем я написал много имен переменных таким образом, и пришлось вернуться через все вложенные файлы, чтобы их исправить.
Ну, тогда я нашел ответ (когда я понял, что есть проблема), о еще один пост здесь, который появился в поиске под этим (именно поэтому я разместил на этом).