我的模板中有以下代码:
{% 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也是一个传递到调用另一个模板的页面上下文的变量,但是当我将名称更改为其他模板时,它仍然无效。所以这不是问题。
答案 0 :(得分:18)
看起来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%}
......它适合我。
答案 1 :(得分:0)
我有一个非常类似的问题。只有我使用破折号,显然在变量名中不允许使用破折号。
我知道这是一个较老的问题,已经得到了充分的回答,但这是密切相关的,并提出了一个搜索,所以为了后代......
{% 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" %}
在我以这种方式编写许多变量名之前知道这一点会很高兴,并且必须通过所有嵌套文件来修复它们。
当然,我可以找到答案,如果我看了,但当时我甚至没有意识到我需要一个答案。
那么,我确实在another post here上找到了答案(当我意识到存在问题时),这个问题出现在这个搜索下(这就是为什么我发布了这个问题)。