如何从 django templatetag 访问 python 列表?

发布于 2024-08-19 04:48:48 字数 239 浏览 6 评论 0原文

我创建了一个 templatetag,将 yaml 文档加载到 python 列表中。在我的模板中,我有 {% get_content_set %},这会转储原始列表数据。我想要做的是类似的事情

{% for items in get_content_list %} 
       <h2>{{items.title}}</h2> 
{% endfor %}`

I have created a templatetag that loads a yaml document into a python list. In my template I have {% get_content_set %}, this dumps the raw list data. What I want to be able to do is something like

{% for items in get_content_list %} 
       <h2>{{items.title}}</h2> 
{% endfor %}`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拿命拼未来 2024-08-26 04:48:48

如果列表位于 python 变量 X 中,则将其添加到模板上下文 context['X'] = X 中,然后您可以执行

{% for items in X %}
       {{ items.title }}
{% endfor %}

模板标记旨在渲染输出,因此不会提供一个可迭代列表供您使用。但你不需要它,因为正常的上下文 + for 循环就可以了。

If the list is in a python variable X, then add it to the template context context['X'] = X and then you can do

{% for items in X %}
       {{ items.title }}
{% endfor %}

A template tag is designed to render output, so won't provide an iterable list for you to use. But you don't need that as the normal context + for loop are fine.

丑疤怪 2024-08-26 04:48:48

由于编写复杂的模板标签并不是一件容易的事(虽然有详细的文档记录),我会采用 {% with %} 标签源并根据我的需要进行调整,所以它看起来像

{% get_content_list as content %
{% for items in content %} 
       <h2>{{items.title}}</h2> 
{% endfor %}`

Since writing complex templatetags is not an easy task (well documented though) i would take {% with %} tag source and adapt it for my needs, so it looks like

{% get_content_list as content %
{% for items in content %} 
       <h2>{{items.title}}</h2> 
{% endfor %}`
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文