Django CMS - 在模板标签中调用 cmsplugin

Posted

技术标签:

【中文标题】Django CMS - 在模板标签中调用 cmsplugin【英文标题】:Django CMS - Call a cmsplugin in a template tag 【发布时间】:2012-10-17 23:27:07 【问题描述】:

我的问题

使用 Django CMS 2.3.3,在创建页面时,我在其他几个 cmsplugins 旁边使用 cmsplugin_picture*。在我的 cms 模板中,而不是这样做:

% placholder "content" %  //calling the Django Page including all plugins...

我想分别调用每个 cmsplugin,但我该怎么做呢? 我查看了 Django 标签模板(过滤器)here 并研究了 Django CMS 模板标签 here,但似乎都没有暗示这种可能性。我不得不说我是一个初学者,所以我可能没有把这些点联系起来......

我想达到的目标:

在我的模板中,我有一个 IMG 标记(在 % placeholder "content" % 标记之外),我想用我在 Page/cmsplugin_picture 中定义的图像 url 填充它。所以我正在寻找一个允许我抓取该图像的占位符标签。在我最疯狂的梦想中,我会命名它:

% show_placeholder "content" request.current_page.get_cmsplugin_picture %

显然上面的行不通,但是这样的事情存在吗?

**我也尝试过 cmsplugin_filer,但对我来说,解决这个特定问题并不一定更有益。*

编辑: 我的意思是 Page/cmsplugin_picture -> 在 Django CMS 页面中,您可以在已安装的 cmsplugins 之间进行选择以添加到页面。就我而言,我选择 cmsplugin_picture 并上传图像(在该插件中)。这个图像我想在我的 Django 模板中“调用”。所以它不是一个静态的 url,而是动态的。

【问题讨论】:

我想我无法理解这个问题。 “...我在我的 Page/cmsplugin_picture 中定义。” 是否要对 URL 进行硬编码,以便在图像占位符中有默认图像? 感谢 jmeas 的关注,我澄清了这个问题。 【参考方案1】:

您应该在 img 标记所在的位置创建第二个占位符(并可选择使用 CMS_PLACEHOLDER_CONF 限制插件的类型和数量(http://docs.django-cms.org/en/2.3.3/getting_started/configuration .html#cms-placeholder-conf)。

【讨论】:

很好用!谢谢ojii 解决方案: 在Settings.py CMS_PLACEHOLDER_CONF = 'pica': "plugins": ['PicturePlugin'] , // creates new placeholder option in admin 在my-template.html % placeholder 'pica' % // displays full img tag

以上是关于Django CMS - 在模板标签中调用 cmsplugin的主要内容,如果未能解决你的问题,请参考以下文章

帝国cms 标签模板的页面模板内容怎么调用栏目自定义变量

将 if 语句添加到 django-cms 模板标签

cms 之外的 Django CMS 简单占位符

使用 django-page-cms 显示页面内容

我正在尝试使用 Django CMS 和模板。但在编辑模板时出错

Django-cms 和自动阻塞