Как запретить добавление определенного плагина в PlaceholderField в пользовательском приложении Django (CMS) - PullRequest
1 голос
/ 10 июля 2019

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

Работает, добавляя заголовок и метаданные сообщения (дата и т. Д.), И после сохранения есть кнопка «Редактировать», чтобы редактировать сообщение на странице.Я использую поле модели PlaceholderField, которое добавляет заполнитель, который принимает все доступные плагины.

Поскольку я также создал плагин CMS, который может отображать последние сообщения из любого доступного раздела, я хотел бы запретить пользователям добавлять CMSплагин для заполнителя страницы с подробным описанием моего поста, поскольку он вызывает ошибку RecursionError.

Дело в том, что плагин CMS не должен быть добавлен в PlaceholderField приложения.

Мне удалось решить проблему (на данный момент) добавив CMS_PLACEHOLDER_CONF в мой файл settings.py с ограничением для моего плагина «Последние сообщения», но, поскольку это публичное репозиторий GitHub, я хотел бы по возможности запретить его в конфигурации моего приложения по умолчанию.В настоящее время он работает следующим образом.

CMS_PLACEHOLDER_CONF = {
    'post_detail': { # name of my model's PlaceholderField
        'name': _("Post content"), # override default name with more verbose one
        'excluded_plugins': ['LatestPostsPlugin'], # exclude from adding to 'post_detail'
    },
}

Если это поможет, вы можете посмотреть код на моем аккаунте GitHub , любые предложения приветствуются.

...