如何访问Django-CMS插件的父模型
发布时间:2020-12-20 11:53:00 所属栏目:Python 来源:网络整理
导读:我创建了2个 django-cms插件,一个父“容器”,可以包含多个子“内容”插件. 当我保存子插件时,我想访问父插件的模型. from cms.plugin_pool import plugin_poolfrom cms.plugin_base import CMSPluginBasefrom .models import Container,Contentclass Contain
我创建了2个
django-cms插件,一个父“容器”,可以包含多个子“内容”插件.
当我保存子插件时,我想访问父插件的模型. from cms.plugin_pool import plugin_pool from cms.plugin_base import CMSPluginBase from .models import Container,Content class ContainerPlugin(CMSPluginBase): model = Container name = "Foo Container" render_template = "my_package/container.html" allow_children = True child_classes = ["ContentPlugin"] class ContentPlugin(CMSPluginBase): model = content name = "Bar Content" render_template = "my_package/content.html" require_parent = True parent_classes = ["ContainerPlugin"] allow_children = True def save_model(self,request,obj,form,change): response = super(ContentPlugin,self).save_model( request,change ) # here I want to access the parent's (container) model,but how? return response plugin_pool.register_plugin(ContainerPlugin) plugin_pool.register_plugin(ContentPlugin) obj是当前的插件实例,所以我可以获得这个模型的所有属性,但我无法弄清楚如何访问父插件模型.有obj.parent,但据我所知,它不是插件实例.还尝试使用self.cms_plugin_instance和obj.parent.get_plugin_instance(),但没有成功. 有什么建议? 解决方法
给定一个插件实例,instance.get_plugin_instance()方法返回一个包含以下内容的元组:
> instance – 插件实例 所以像这样得到父对象: instance,plugin_class = object.parent.get_plugin_instance() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |