Интерфейс командной строки

Вы можете вызвать интерфейс командной строки django CMS с помощью команды cms Django:

python manage.py cms

Информационные команды

cms list

Команда list используется для отображения информации о вашей установке.

Она имеет две подкоманды:

  • cms list plugins перечисляет все плагины, которые используются в вашем проекте.

  • cms list apphooks перечисляет все apphooks, которые используются в вашем проекте.

cms list plugins будет выдавать предупреждения при обнаружении бесхозных плагинов (см. cms delete-orphaned-plugins ниже).

cms check

Проверяет вашу конфигурацию и среду.

Команды управления плагинами и apphook

cms delete-orphaned-plugins

Предупреждение

Команда delete-orphaned-plugins постоянно удаляет данные из вашей базы данных. Перед ее использованием необходимо сделать резервную копию базы данных!

Выявляет и удаляет бесхозные плагины.

Сиротские плагины - это плагины, которые существуют в таблице CMSPlugins, но:

  • есть plugin_type, который уже даже не установлен

  • не имеют соответствующего сохраненного экземпляра в таблице данного типа плагина

Такие плагины будут вызывать проблемы при попытке использовать операции, требующие копирования страниц (а значит и плагинов), к которым относится cms moderator on, а также операции копирования страниц в админке.

Рекомендуется периодически запускать cms list plugins, а cms delete-orphaned-plugins - по мере необходимости.

cms uninstall

Подкоманду uninstall можно использовать для упрощения удаления плагина CMS или apphook.

Она имеет две подкоманды:

  • cms uninstall plugins <plugin name> [<plugin name 2> [...]] деинсталлирует один или несколько плагинов, удаляя их со всех страниц, где они используются. Обратите внимание, что имя плагина должно быть именем класса, зарегистрированного в django CMS. Если вы не уверены в имени плагина, используйте cms list для просмотра списка установленных плагинов.

  • cms uninstall apphooks <apphook name> [<apphook name 2> [...]] деинсталлирует один или несколько apphook, удаляя их со всех страниц, где они используются. Обратите внимание, что имя apphook должно быть именем класса, зарегистрированного в django CMS. Если вы не уверены в имени apphook, используйте cms list для просмотра списка установленных apphook.

Предупреждение

Команды удаления постоянно удаляют данные из вашей базы данных. Перед их использованием необходимо сделать резервную копию базы данных!

cms copy

Команда copy используется для копирования содержимого с одного языка или сайта на другой.

Она имеет две подкоманды:

  • cms copy lang копировать содержимое на заданный язык.

  • cms copy site копировать страницы и содержимое на заданный сайт.

cms copy lang

Подкоманда copy lang может быть использована для копирования содержимого (заголовков и плагинов) с одного языка на другой. По умолчанию подкоманда копирует содержимое с текущего сайта (например, значение SITE_ID) и только если целевой плагин не имеет содержимого для указанного языка; используя определенные опции, вы можете изменить это.

Вы должны привести два аргумента:

  • --from-lang: язык, с которого будет копироваться содержимое;

  • --to-lang: язык, на который нужно скопировать содержимое.

Он принимает следующие параметры

  • --force: задается для копирования содержимого, даже если у плейсхолдера уже есть содержимое; если задано, скопированное содержимое будет добавлено к исходному;

  • --site: укажите SITE_ID для работы с сайтами, отличными от текущего;

  • --verbosity: устанавливается для более подробного вывода.

  • --skip-content: если установлено, содержимое не копируется, и команда будет создавать заголовки только на заданном языке.

Пример:

cms copy lang --from-lang=en --to-lang=de --force --site=2 --verbosity=2

cms copy site

Подкоманда copy site может использоваться для копирования содержимого (страниц и плагинов) с одного сайта на другой. Подкоманда копирует содержимое с from-site на to-site; обратите внимание, что статические заполнители копируются, так как они общие для всех сайтов. Копируется все дерево источника, в корень целевого сайта. Существующие страницы на целевом сайте не изменяются.

Вы должны привести два аргумента:

  • --from-site: сайт, с которого будет скопировано содержимое;

  • --to-site: сайт, на который нужно скопировать содержимое.

Пример:

cms copy site --from-site=1 --to-site=2

Команды модерации

cms moderator

Если вы переходите с более ранней версии, вам следует использовать команду cms moderator on, чтобы убедиться, что ваши опубликованные страницы актуальны, независимо от того, использовали вы модерацию в прошлом или нет.

Предупреждение

Эта команда изменяет данные в вашей базе данных. Перед ее использованием следует сделать резервную копию базы данных! Никогда не выполняйте эту команду без предварительной проверки на наличие осиротевших плагинов, используя команду cms list plugins и, если необходимо, delete-orphaned-plugins. Выполнение команды cms moderator с бесхозными плагинами приведет к неудаче и оставит плохие данные в вашей базе данных.

cms publisher-publish

Если вы хотите опубликовать сразу много страниц, эта команда может вам помочь. По умолчанию эта команда публикует черновики для всех публичных страниц.

Он принимает следующие параметры

  • --unpublished: установлен для публикации всех черновиков, включая неопубликованные; если не установлен, будут переизданы только уже опубликованные страницы.

  • -l, --language: укажите код языка для публикации страниц только на одном языке; если он не указан, эта команда публикует все языки страниц;

  • --site: укажите идентификатор сайта, чтобы публиковать страницы только для указанного сайта; если он не указан, эта команда публикует страницы для всех сайтов;

Пример:

#publish drafts for public pages in all languages
cms publisher-publish

#publish all drafts in all pages
cms publisher-publish --unpublished

#publish drafts for public pages in deutsch
cms publisher-publish --language=de

#publish all drafts in deutsch
cms publisher-publish --unpublished --language=de

#publish all drafts in deutsch, but only for site with id=2
cms publisher-publish --unpublished --language=de --site=2

Предупреждение

Эта команда публикует черновики. Перед использованием этой команды следует просмотреть черновики, так как они станут общедоступными.

Техническое обслуживание и ремонт

fix-tree

Иногда дерево страниц и плагинов может быть повреждено. Типичные симптомы включают проблемы при попытке копирования или удаления плагинов или страниц.

Эта команда исправит небольшие повреждения, перестроив дерево.

fix-mptt

Иногда дерево MPTT может быть повреждено (это одна из причин появления our move away from MPTT to MP in django CMS 3.1). Типичные симптомы включают проблемы при попытке копирования или удаления плагинов или страниц.

Эта команда была удалена в django CMS 3.1 и заменена на fix-tree.

Вернуться на верх