2017-01-31 35 views
1

我正在测试Django CMS,我正在寻找一种方法来为所有语言创建一次页面。目前,我必须为每种语言创建一个新页面,而内容/插件/结构不会在不同语言之间共享。一次为所有语言创建页面结构

有没有办法做到这一点?

在此先感谢

回答

0

内置的管理命令./manage.py cms copy lang副本从一种语言到另整个页面树。页面树保持不变,并且插件树被传输。如果您想为整个网站引导一种新语言,那很好。

如果你想复制插件树只有一个页面,则可以使用语言菜单工具栏上:Language -> Copy all plugins,如果你正在查看目标语言。这很好,如果你只有一个页面。

如果你想启动一个语言的页面树,即页面及其所有的孩子,那么你要么有大量的点击做,或使用我创建在原有基础上DjangoCMS这短短的管理命令./manage.py cms copy long命令。它允许指定一个页面,通过它的id或通过源语言的名称进行复制(注意:它必须是唯一的)。

复制this snippet到任何应用程序的命令文件夹中:my_app/management/commands/。一旦你复制了文件,你将得到一个新的Django管理命令:./manage.py copylang。使用示例:

./manage.py copylang --from-lang=en --to-lang=nl --tree="Home" 
./manage.py copylang --from-lang=en --to-lang=nl --tree_id=36 --force 

所需--tree_id选项页ID可以很容易地从网页管理员将鼠标悬停在页面的预览图标推断。页ID是链接的一部分:... /页/ PAGE_ID/ /预览/ ...

如果你离开了--tree--tree_id选项命令将恢复到DjangoCMS的原始cms copy lang行为。