У меня уже есть существующий сайт Django. Я добавил новый URL-адрес/блог /, где я хотел бы иметь блог Mezzanine. Если возможно установить Mezzanine в качестве приложения на существующем сайте Django, а не в автономном блочном приложении.Как установить Mezzanine в качестве приложения Django?
ответ
Это описано в разделе часто задаваемых вопросов:
TLDR: Мезонин добавляет несколько настроек, приложений, промежуточного ПО и контекстных процессоров, все определенные в файле settings.py по умолчанию - вам просто нужно извлеките из них достаточно, в зависимости от ваших потребностей.
Если вы похожи на меня, вы обнаружите, что в FAQ часто не хватает описания того, как заставить Mezzanine работать как приложение. Так вот что я сделал (после болезненного половины дня взлома), чтобы получить его интегрировать (несколько):
- Скачать репозиторий и скопировать его в свой проект
- Run setup.py для пакета
cd
в пакет и запустите команду mezzanine для создания нового приложения (mezzanine-project <project name>
), допустим, вы используете имяblog
как ваш<project_name>
.- В файле
local_settings.py
илиsettings.py
введитеDATABASES
dict, чтобы использовать базу данных своего проекта. - Выполните команду
createdb
с мезониномmanage.py
файл
Теперь пришло время, чтобы начать хак-фест:
- В settings.py файл вашего проекта, добавьте
blog
кINSTALLED_APPS
- Добавьте некоторые переменные конфигурации в settings.py, которые ожидают мезонин:
PACKAGE_NAME_FILEBROWSER = "filebrowser_safe" PACKAGE_NAME_GRAPPELLI = "grappelli_safe" GRAPPELLI_INSTALLED = False ADMIN_REMOVAL = [] RATINGS_RANGE = range(1, 5) TESTING = False BLOG_SLUG = '' COMMENTS_UNAPPROVED_VISIBLE = True COMMENTS_REMOVED_VISIBLE = False COMMENTS_DEFAULT_APPROVED = True COMMENTS_NOTIFICATION_EMAILS = ",".join(ALL_EMAILS) COMMENT_FILTER = None
- Добавьте промежуточное программное обеспечение, что Мезонин ожидает: `` `` ` ... "mezzanine.core.request.CurrentRequestMiddleware", "mezzanine.core.middleware.RedirectFallbackMiddleware", «mezzanine.core.middleware. TemplateForDeviceMiddleware», "mezzanine.core.middleware.TemplateForHostMiddleware", "mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware", "mezzanine.core.middleware.SitePermissionMiddleware",
Раскоментируйте следующее при использовании любого из параметров SSL:
"mezzanine.core.middleware.SSLRedirectMiddleware",
"mezzanine.pages.middleware.PageMiddleware", .... `` `` - Добавить некоторые INSTALLED_APPS что Мезонин ожидает:
.... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
- Добавить ссылки на шаблон папки
mezzanine
к вашемуTEMPLATE_DIRS
кортежos.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'), os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
- Наконец, если ваш, как я, вы должны будете переопределить некоторые из путей
extends
в мезонинных шаблонах, наиболее очевидное из которых находится в «blog_post_list.html», который просто расширяетbase.html
, вместо этого вы хотите, чтобы он расширил мезонин конкретнымbase
. Поэтому перейдите к этому файлу и замените{% extends "base.html" %}
на{% extends "core/templates/base.html" %}
.
Привет, я получаю эту проблему при запуске setup.py: 'из: не может читать/вар/почта/Setuptools из: не может читать/вар/почта/shutil из: не умеет читать/var/mail/mezzanine ./setup.py: строка 9: исключить: команда не найдена ./setup.py: строка 10: mezzanine/project_template/project_name/local_settings.py]: Нет такого файла или каталога ./ setup.py: строка 13: синтаксическая ошибка возле неожиданного токена (' ./setup.py: строка 13: exclude = dict ([(e, None) для e in exclude])' ' любые идеи? – vabada
Я пробовал это совсем немного, не повезло; хотелось бы знать, как этого добиться. Мезонин - это CMS, и он имеет свой единственный сервер-сервер и т. Д. Я считаю, что это невозможно. – karthikr