如何在Django-CM中复制占位符字段

2024-05-09 20:27:56 发布

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

我们在我们的网站上使用Django CMS,其中占位符字段位于自定义模型上。在

我希望向使用占位符字段的自定义模型添加草稿/定时编辑。在

但作为其中的一部分,我需要能够复制占位符字段。在

我在web界面中看到了这一点,并尝试使用PlaceholderAdminMixin类及其copy\u plugins方法,但它似乎与web站点绑定太多(遇到了伪造“admin_site”变量的问题:)我需要在web界面之外/仅在代码中执行此操作。在

有人对如何最好地做到这一点有什么建议/想法吗?在

谢谢你的时间!在


Tags: django方法模型web编辑界面cms站点
1条回答
网友
1楼 · 发布于 2024-05-09 20:27:56

要将插件从PlaceholderField复制到另一个占位符,可以执行以下操作:

from cms.utils.copy_plugins import copy_plugins_to


class YouModel(models.Model):
    content = PlaceholderField('content')


instance = YourModel.objects.get(pk=1)

# language can be none if you want to copy all plugins regardless
# of language
plugins = instance.content.get_plugins_list(language=language)

# target_placeholder is a placeholder instance
copy_plugins_to(plugins, target_placeholder, no_signals=True)

请记住,copy_plugins_to是内部的,因此它可以更改:)

相关问题 更多 >