【发布时间】:2015-09-09 14:53:35
【问题描述】:
我真的是 Django-CMS 的新手,我查看了文档,但我找不到我需要的东西,所以我可能做错了。 无论如何,我正在创建一个自定义插件,我的模型里面有 3 个占位符:
models.py
class Tile(CMSPlugin):
text = PlaceholderField('text', related_name='tile_text')
img = PlaceholderField('img', related_name='tile_img')
link = PlaceholderField('link', related_name='tile_link')
那么我有 3 个使用该模型的不同插件:
cms_plugins.py
from cms.plugin_base import CMSPluginBase
from cms.models.pluginmodel import CMSPlugin
from cms.plugin_pool import plugin_pool
from django.utils.translation import ugettext_lazy as _
from tiles_plugin.models import Tile
class BigTilePlugin(CMSPluginBase):
model = Tile
name = _('Big Tile Plugin')
render_template = 'tiles_plugin/big_tile.html'
allow_children = True
def render(self, context, instance, placeholder):
context['instance'] = instance
return context
class MedTilePlugin(CMSPluginBase):
model = Tile
name = _('Medium Tile Plugin')
render_template = 'tiles_plugin/med_tile.html'
allow_children = True
def render(self, context, instance, placeholder):
context['instance'] = instance
return context
class SmallTilePlugin(CMSPluginBase):
model = Tile
name = _('Small Tile Plugin')
render_template = 'tiles_plugin/small_tile.html'
allow_children = True
def render(self, context, instance, placeholder):
context['instance'] = instance
return context
plugin_pool.register_plugin(BigTilePlugin)
plugin_pool.register_plugin(MedTilePlugin)
plugin_pool.register_plugin(SmallTilePlugin)
然后我有了模板:
big_tile.html
{% load cms_tags %}
<div class="big-tile">
<div class="content">
{% render_placeholder instance.text %}
</div>
<div class="link">
{% render_placeholder instance.link %}
</div>
<div class="img">
{% render_placeholder instance.img %}
</div>
</div>
问题来了,当我创建插件并插入文本/图片/链接插件时,这些插件没有填充,所以基本上所有内容都是空的,就像 javascript 没有填充它(肯定不是javascript),但我认为我缺少与 child_plugins 的关系。 谁能帮帮我?
谢谢
编辑
这使它正常工作:
{% for plugin in instance.child_plugin_instances %}
{% render_plugin plugin %}
{% endfor %}
感谢@mfcovington
【问题讨论】:
-
EDIT 这使它工作: {% for plugin in instance.tile.child_plugin_instances %} {% render_plugin plugin %} {% endfor %} 感谢@mfcovington跨度>
标签: django python-3.x django-cms