Hubspot(Jinja):为博客数据添加变量以便在for循环中输出

时间:2016-08-12 19:46:11

标签: python templates jinja2 hubspot

Hubspot内置于jinja,提供有限和定制的jinja库供其开发人员使用。没有服务器端访问可用,python在其模板

中不起作用

您好,

我想知道是否可以在博客数据中添加变量。

目前,要构建一个博客列表页面,您需要设置一个for循环

`{% for content in contents %}

{% endfor %}`

然后你会调用在博客帖子的不同部分调用的变量

{{ content.foo ))

这些变量适用于已经且始终包含在hubspot博客帖子中的元素,例如

作者 日期 标题 摘要 绝对联系 等

但是可以添加这些变量。例如,假设我在博客文章模板中添加了一个图像模块。有没有办法在列表页面上访问它?

我实际上要做的是允许该选项根据我在博客帖子模板上设置的选择模块在一列或两列中显示任何列表项。如果在创建博客文章时选择1列或2列,则列表页面循环内的包装器中的类将相应更改。

我遇到的问题是,虽然选项模块值可用于列表页面模板(在博客模板上的hubl模板模块中,而不是在博客文章模板中),并且选择下拉列表在博客编辑模板​​和选择可以制作和保存,列表页面只能识别默认选项,而不是博客编辑器中选择的选项。

写这篇文章的一半我决定将选择模块从主博客模板移到博客页面模板,现在列表页面无法选择变量。将选择模块保留在博客页面模板之外的主博客模板中会使选择的变量可用,但博客不能单独使用。由于博客上选择的选项未按博客保存,因此只有默认选项可用。

如果有办法将其添加到内容变量中以便您可以执行类似

的操作,那就太棒了
{{ content.widget_data.foo.value }}

在内容循环中,可以选择博客文章。

任何想法?

1 个答案:

答案 0 :(得分:1)

我回答了自己的问题。

我使用了开发者信息(我必须使用代码美化器和页面搜索)但我在每个帖子的数据中找到了选择小部件。

我期待它像

{{ content.widget_data.foo.value }}

因为这是它在页面上的工作方式(减去内容。),但它最终成为了

{{ content.widgets.foo.body.value }}

现在正在输出每个帖子做出的选择。

如果这对其他人有帮助,我想提一下,选择模块实际上放在博客页面模板中(不是主博客模板或列表模板)。

这适用于任何模块,自定义或其他模块。您只需在数据中找到它并相应地定位。

我的数据如下:

"contents": {
"objects": [{
"widgets": {
"columns": {
"css": {},
"child_css": {},
"name": "foo",
"type": "choice",
"label": "Choose Columns",
"smart_type": null,
"id": "columns",
"body": {
"value": "col-wrap-2"
}
}
},