2012-10-19 75 views
2

我正在寻找一种方法来检查插件在Django-CMS中的占位符内的位置。我发现这个问题Detect last plugin in a placeholderDjango CMS:在占位符中的插件位置

是“插件”一个django cms关键字吗?我找不到关于它的文档。

我的问题是:如何获取有关在占位符内呈现的插件的信息?

感谢

+0

这里是[code](https://github.com/divio/django-cms/ blob/develop/cms/models/pluginmodel.py#L317)的CMSPlugin模型。正如你所看到的,它确实定义了一些有用的方法来知道它在占位符中的位置。这些类型的方法没有记录,但阅读源代码将揭示它们:) – Paulo

+0

感谢Paulo。我会看看该代码来回答我的问题 –

+0

@ joseS你解决了这个问题吗?我尝试用真实的答案总结Paulo的评论,并从他提供的链接中添加必要条件,以便其他人更容易从中受益......您如何看待? – benzkji

回答

1

如果不重写你的插件渲染方法(2.4及以上),你有你的插件为您的背景下instance。使用以下,你会得到你的插件基于1个的位置:

{{ instance.get_position_in_placeholder }}

也很有趣:is_first_in_placeholderis_last_in_placeholder。实际上@paulo已经在他的评论中向你展示了方向;)这是代码,新行号:https://github.com/divio/django-cms/blob/develop/cms/models/pluginmodel.py#L382

+0

它看起来像是在占位符中包含插件的子插件?如果是这样,是否有任何方法可以直接在占位符中获取插件的位置? – nils

+0

通过对django-cms 3.2的快速测试,我无法证实这种行为。嵌套插件都可以正确使用自己的(基于1的)位置。你在哪个版本上? – benzkji