Django-cms + grappelli


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

Ответ 1

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

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

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

Ответ 2

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

  • Настройте субдомен: cms.example.com

  • Измените свой веб-сервер для обслуживания этого поддомена. Используйте те же настройки, что и ваш основной сайт django, но укажите другой обработчик script. например если вы используете 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 с отключенным grappelli, перейдите в http://cms.example.com/admin/cms/page/

Ответ 3

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