Django`with`标签无法识别关键字参数

时间:2013-06-15 16:04:58

标签: python django

我的模板中有以下代码:

{% 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 个答案:

答案 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上找到了答案(当我意识到存在问题时),这个问题出现在这个搜索下(这就是为什么我发布了这个问题)。