Если кто-нибудь знает, как сделать игру 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, немного устарел, но может помочь вам начать или вероятность того, что вы хотите внести свой вклад.