Как установить Mezzanine в качестве приложения Django? - программирование
Подтвердить что ты не робот

Как установить Mezzanine в качестве приложения Django?

У меня уже есть существующий сайт Django. Я добавил новый URL-адрес/блог/, где я хотел бы иметь блог Mezzanine. Если возможно установить Mezzanine в качестве приложения на существующем сайте Django, а не в автономном блочном приложении.

4b9b3361

Ответ 1

Если вы похожи на меня, вы обнаружите, что в FAQ часто не хватает описания того, как заставить Mezzanine работать как приложение. Итак, вот что я сделал (после болезненного полдня взлома), чтобы интегрировать его (несколько):

  • Загрузите репо и скопируйте его в свой проект
  • Запустите setup.py для пакета
  • cd в пакет и запустите команду mezzanine для создания нового приложения (mezzanine-project <project name>), скажем, вы используете имя blog как ваш <project_name>.
  • В файле local_settings.py или settings.py установите DATABASES dict для использования базы данных проекта.
  • Запустите команду createdb из файла mezzanine manage.py

Теперь пришло время запустить хакер-фест:

  • В файле настроек проекта .py добавьте blog в INSTALLED_APPS
  • Добавьте некоторые параметры конфигурации в settings.py, которые ожидают Mezzanine: 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: `` `` ` ... "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: .... "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" %}.

Ответ 2

Это описано в FAQ:

http://mezzanine.jupo.org/docs/frequently-asked-questions.html#how-can-i-add-mezzanine-to-an-existing-django-project

TL;DR: Mezzanine добавляет несколько настроек, приложений, промежуточного программного обеспечения и контекстных процессоров, все из которых определены в файле settings.py по умолчанию. Вам просто нужно извлечь из них достаточно, в зависимости от ваших потребностей.