我正在尝试建立一个使用RSS源的网站。 我的用例是一次可以显示一个RSS feed,然后可能在5秒钟后循环到下一个。这些RSS feed必须显示在同一占位符上。 如果您需要更多信息,我是django cms的新手。
我在Google上搜索了很多,但是我只能看到如何从前端添加插件,它们都会自动显示在占位符中。 或修改自定义插件类的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 feed。 这些供稿是指向实际网页的链接,其中包含更多信息。
答案 0 :(得分:0)
一种方法是在ExternalArticle Model中编写一个函数random_rss_feed_url()
,该函数呈现一个随机的rss实例。
model.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);