gpt4 book ai didi

python - 如何在 django cms 3.5.3 中循环模板上的自定义插件数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:32 24 4
gpt4 key购买 nike

我正在尝试实现一个使用 RSS 源的网站。我的用例是能够一次显示一个 RSS 提要,然后可能在 5 秒后循环到下一个提要。这些 RSS 源需要显示在同一占位符上。我是 django cms 的新手,如果您需要更多信息,请告诉我。

我在谷歌上搜索了很多,但我所能看到的只是如何从前端添加插件,它们都会自动显示在占位符内。或者修改自定义插件类的render方法来显示你想要的内容。但我想以连续的方式显示除一次之外的所有内容

@plugin_pool.register_plugin
class ExternalArticlePlugin(CMSPluginBase):
model = ExternalArticle
name = _("External article")
render_template = "external_article.html"
cache = False

def render(self, context, instance, placeholder):
context = super(ExternalArticlePlugin, self).render(
context, instance, placeholder
)
return context

我希望在占位符内一次显示一个 RSS 提要。这些提要是指向包含更多信息的实际网页的链接。

最佳答案

一种方法是在ExternalArticle模型中编写一个函数random_rss_feed_url(),它呈现一个随机的rss实例。

模型.py

class ExternalArticle(models.Model):

def random_rss_feed_link(self):
return ExternalArticle.objects.order_by('?')[0].link

然后你在插件external_article.html中执行:

{{ instance.random_rss_feed_link }}

已编辑:

如果您想在不重新加载页面的情况下自动更改,那么您的模板中的 javascript 需要类似的内容:

var rss_links = ['link_1', 'link_2', 'link_3']; 

setInterval(function() {

// take random rss link
var random_link = rss_links[Math.floor(Math.random()*rss_links.length)];

// change the link
document.getElementById('rss_link_element').href = random_link;

}, 5000);

关于python - 如何在 django cms 3.5.3 中循环模板上的自定义插件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com