如何将插件添加到Django-CM中的静态占位符

2024-10-03 11:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始在Django CMS中使用静态占位符,我想引导一个速度并创建一个“footer”静态占位符。比如:

static_placeholder = StaticPlaceholder(
    name=static_placeholder_code,
    code=static_placeholder_code,
    creation_method=StaticPlaceholder.CREATION_BY_CODE
)
static_placeholder.save()

我试着用api.add_插件但有个错误

^{pr2}$

由于静态占位符不是占位符的实例,因此add_plugin不起作用。 在add_plugin函数中:assert isinstance(placeholder,placeholder)

向这个静态占位符添加TextPlugin的最佳方法是什么?在


Tags: djangonameaddcms静态codestaticplugin
1条回答
网友
1楼 · 发布于 2024-10-03 11:21:02

StaticPlaceholder是一个与Placeholder模型有两个外键关系的模型,一个称为draft,另一个称为public。两者都将为您提供一个Placeholder实例。在

你可以使用:

add_plugin(
    placeholder=static_placeholder.draft,
    plugin_type='TextPlugin',
    language='en',
)

它可以工作,但请记住,您应该始终使用draft作为上面的示例,这是因为当您发布时,draft中的所有插件都将被复制到public占位符上。在

最后一点不确定你的应用程序的细节,但应该指出,当staticplaceholder在模板中呈现时,不必事先创建它。你只需:

^{pr2}$

这将获得或创建footer静态占位符。在

相关问题 更多 >