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

было бы неплохо узнать это, прежде чем я написал много имен переменных таким образом, и пришлось вернуться через все вложенные файлы, чтобы их исправить.

Ну, тогда я нашел ответ (когда я понял, что есть проблема), о еще один пост здесь, который появился в поиске под этим (именно поэтому я разместил на этом).