我有一个插件(PodcastPlugin),它包含两个manyfield(podcasts和custompodcasts)。我想创建一个Django命令,在同一个页面上创建一个新的插件,并用旧实例占位符。 [[老Pluguin[截图] 我可以创建一个新插件,但它不会将podcasts和自定义podcasts的旧实例复制到新创建的PodcastPlugin中。 这是我的密码:
from cms.models.pagemodel import Page
from cms.api import add_plugin
for page in Page.objects.all():
for placeholder in page.placeholders.filter(page=263):
for plugin in placeholder.get_plugins_list():
if plugin.plugin_type == 'PodcastPlugin':
for custom_ids in plugin.get_plugin_instance()[0].custom_podcasts.values_list('id'):
for podcasts_ids in plugin.get_plugin_instance()[0].podcasts.values_list('id'):
add_plugin(
placeholder=placeholder,
plugin_type='PodcastPlugin',
podcasts=[podcasts_ids[0]],
cmsplugin_ptr_id=plugin.id,
custom_podcasts=[custom_ids[0]],
title='New Podcast',
language='de'
)
我通过循环使用两个外键的实例(podcast和custom\ podcast)解决了这个问题,然后使用notation并保存它
如果有人遇到这种情况,我的解决方案是:
相关问题 更多 >
编程相关推荐