Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我刷新页面时,我的自定义Django CMS插件';孩子们都病倒了_Python_Django_Django Cms - Fatal编程技术网

Python 当我刷新页面时,我的自定义Django CMS插件';孩子们都病倒了

Python 当我刷新页面时,我的自定义Django CMS插件';孩子们都病倒了,python,django,django-cms,Python,Django,Django Cms,我已经编写了最简单的Django CMS插件,允许使用儿童(我使用Python 3.4.3、Django 1.7.10、Django CMS 3.1.3): cms_plugins.py: from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool class SamplePlugin(CMSPluginBase): allow_children = True render_

我已经编写了最简单的Django CMS插件,允许使用儿童(我使用Python 3.4.3、Django 1.7.10、Django CMS 3.1.3):

cms_plugins.py:

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool

class SamplePlugin(CMSPluginBase):
    allow_children = True
    render_template = "sample_plugin.html"

    def render(self, context, instance, placeholder):
        context['instance'] = instance
        return context

plugin_pool.register_plugin(SamplePlugin)
模板/sample_plugin.html:

{% load cms_tags %}

{% for plugin in instance.child_plugins %}{% render_plugin plugin %}{% endfor %}
我不使用自定义模型,只渲染子插件

然后,我在结构模式下打开了一个页面,并在占位符中添加了一个Sampe插件实例和一个样式插件——到目前为止,一切都很好。我可以编辑这两个,当然没有太多的编辑为我自己的插件。当我现在将样式插件移动到示例插件中时,我仍然可以编辑样式插件。切换到内容模式并检查DOM,插件实际上是嵌套的

但是,如果我现在刷新页面,则明显存在一些不一致之处:

  • 与示例插件对应的
    div
    在DOM中为空
  • 在结构模式下,嵌套样式插件不再显示上下文菜单
  • 双击它将打开父示例插件的编辑器(DOM在iframe源中显示父插件的id。手动更改该URL将打开右侧编辑器)
  • 样式插件不能再四处移动
快速检查Djangomsèu样式并没有显示任何与问题相关的明显差异。这是怎么回事



我也得到了类似于的堆栈跟踪,但它们似乎是不相关的-这发生在添加任何插件时-并且不会破坏其他任何东西-没有503或任何东西。

问题似乎在模板中,应该是这样的

{% for plugin in instance.child_plugin_instances %}
相反,如果

{% for plugin in instance.child_plugins %}
这似乎在Django CMS 2.4和3.0之间发生了变化:比较和上的信息(查看
parent.html

我发现没有必要重写
render
来添加
context['instance']
;样式插件也不能做到这一点