2017-01-31 8 views
1

Я тестирую CMS Django, и я ищу способ создания страниц один раз для всех языков. В настоящее время мне нужно создать новую страницу для каждого языка, а контент/плагин/структура не разделяются между разными языками.Создайте структуру страницы один раз для всех языков

Есть ли способ достичь этого?

Заранее спасибо

ответ

0

Встроенная команда управления ./manage.py cms copy lang копирует всю страницу дерева с одного языка на другой. Дерево страниц остается неизменным и передаются деревья плагинов. Это нормально, если вы хотите загрузить новый язык для всего сайта.

Если вы хотите, чтобы скопировать плагин для деревьев только одна страница, вы можете использовать меню языка на панели инструментов: Language -> Copy all plugins если вы просматриваете целевой язык. Это нормально, если у вас только одна страница.

Если вы хотите самонастройки языка для дерева страниц, т.е. страницы и всех ее детей, то вы либо иметь много щелкать сделать, или использовать эту короткую команду управления, который я создал на основе оригинального DjangoCMS ./manage.py cms copy long команда. Он позволяет указать страницу для копирования либо ее идентификатором, либо его именем на исходном языке (внимание: оно должно быть уникальным).

Скопируйте 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 можно легко вывести из страницы администратора при наведении на значок предварительного просмотра страницы. Страница идентификатор часть ссылки: .../страница/PAGE_ID/языки/просмотр/...

Если оставить из --tree и --tree_id опции команды будет возвращаться к DjangoCMS изначального cms copy lang поведение.