Джанго-смс + грапелли


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

3 ответа

Решение

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

пакеты вашего сайта dir / cms / templates / cms / toolbar / toolbar.html

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

Мое решение состоит в том, чтобы реализовать 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, редактировать 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 из кортежа в список

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

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

  • Ваш обычный сайт продолжает работать как обычно. Чтобы редактировать страницы django-cms с отключенной графикой, перейдите по http://cms.example.com/admin/cms/page/.

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

Другие вопросы по тегам