我开始在Django-CMS中使用静态占位符,我想引导节奏并创建一个“页脚”静态占位符。类似的东西:
static_placeholder = StaticPlaceholder(
name=static_placeholder_code,
code=static_placeholder_code,
creation_method=StaticPlaceholder.CREATION_BY_CODE
)
static_placeholder.save()
我尝试使用api.add_plugin添加TextPlugin但出错了
add_plugin(
placeholder=static_placeholder,
plugin_type='TextPlugin',
language='en',
)
由于static_placeholder不是Placeholder的实例,因此add_plugin不起作用。 在add_plugin函数中:assert isinstance(占位符,占位符)
将TextPlugin添加到此静态占位符的最佳方法是什么?
答案 0 :(得分:3)
StaticPlaceholder
是一个与Placeholder
模型有两个外键关系的模型,一个称为draft
,另一个称为public
。两者都会给你一个Placeholder
个实例。
你可以使用:
add_plugin(
placeholder=static_placeholder.draft,
plugin_type='TextPlugin',
language='en',
)
它会起作用,但请记住,您应该始终使用draft
作为上述示例,这是因为当您发布时,draft
中的所有插件都将被复制到{{ 1}}占位符。
最后不确定你的应用程序的细节,但应该指出当staticplaholder在模板中呈现时,没有必要事先创建它。你可以这样做:
public
然后,这将获取或创建{% load cms_tags %}
{% static_placeholder 'footer' %}
静态占位符。