django-cms + grappelli


Если кто-нибудь знает, как заставить django-cms играть с grappelli, пожалуйста, дайте несколько советов

3 ответов


Ну, я только что пережил довольно эпическое приключение, история которого может быть вам полезна. Конечной точкой этого приключения было получение django-cms 2.1.3, работающего с django-filebrowser-no-grappelli . Хотя это может показаться противоположным тому, что вы хотите, я оказался там, потому что я действительно хотел, чтобы django-cms работал с filebrowser. Без grappelli, хотя стандартный django-filebrowser работает не так, как ожидалось. Но с Граппелли django-cms работает не так, как ожидалось. Вот в чем загвоздка, цитируя Шекспира. Получение django-cms, работающей с filebrowser, было относительно прямым, за исключением того, что при попытке загрузить файлы с помощью uploadify (который поставляется с filebrowser), после выбора файлов в диалоговом окне файла ничего не произошло. В конце концов я понял, что это потому, что библиотека jquery загружалась дважды: один раз filebrowser для использования с uploadify и один раз django-cms. Так комментируя вторую строку в этом файле:

ваш сайт пакеты dir/cms/шаблоны/cms/панель инструментов / панель инструментов.HTML-код

который загружает jquery.минута.js, uploadify работал, как ожидалось. Оооо...если вы просто хотите, чтобы django-cms работал с grappelli, чтобы вы могли использовать filebrowser, это может быть полезно. здесь - это файл настроек для справки.


мое решение-реализовать 2 поддомена, " www " и "cms", в каждом из которых отдельный экземпляр сайта Django работает с другим STATIC_ROOT и измененным INSTALLED_APPS. grappelli работает в субдомене "www". Он не работает в поддомене "cms", так что вы можете использовать django-cms там.

  • настройка поддомена:cms.example.com

  • измените свой веб-сервер для обслуживания этого поддомена. Используйте те же настройки, что и ваш основной сайт django, но указывает на другой обработчик скриптов. например, при использовании wsgi направьте сервер для запуска wsgi_cms.py

  • cp wsgi.py wsgi_cms.py. Edit wsgi_cms.py и измените строку

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings") к os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings_cms")

  • settings_cms.py :

:

from settings import *

INSTALLED_APPS.remove('grappelli.dashboard')
INSTALLED_APPS.remove('grappelli')
STATIC_ROOT = os.path.join('/what/ever/static_cms/')
STATIC_URL = '/static_cms/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/`
  • изменить settings.py: изменить INSTALLED_APPS от кортежа до списка

  • перезапустить web серверы

  • ./manage.py collectstatic --settings=myproject.settings_cms

  • ваш обычный сайт продолжается как обычно. Для редактирования страниц django-cms с отключенным grappelli перейдите вhttp://cms.example.com/admin/cms/page/


Я однажды сделал Django-CMS вилка на github это поддерживает grappelli, это немного устарело, но, возможно, поможет вам начать работу или probaly вы хотели бы внести свой вклад.