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.pyCMS_PLACEHOLDER_CONF = 'pica': "plugins": ['PicturePlugin'] , // creates new placeholder option in admin
在my-template.html % placeholder 'pica' % // displays full img tag
以上是关于Django CMS - 在模板标签中调用 cmsplugin的主要内容,如果未能解决你的问题,请参考以下文章