rob*_*les 3 django django-models django-cms
我创建了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, obj, form, 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)
Run Code Online (Sandbox Code Playgroud)
obj是当前的插件实例,所以我可以获得该模型的所有属性,但我无法弄清楚如何访问父插件模型.有obj.parent,但据我所知,它不是插件实例.也试过玩self.cms_plugin_instance,obj.parent.get_plugin_instance()但没有成功.
有什么建议?
给定一个插件实例,instance.get_plugin_instance()方法返回一个包含以下内容的元组:
所以像这样得到父对象:
instance, plugin_class = object.parent.get_plugin_instance()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |