如何安装Mezzanine作为Django应用程序?

nic*_*ine 16 python django mezzanine

我已经有了一个现有的Django网站.我添加了一个新的网址'/ blog /',我希望有一个Mezzanine博客.如果可以将Mezzanine安装为现有Django站点中的应用程序而不是独立的博客应用程序.

Bob*_*bby 13

如果你像我一样,你会发现常见问题解答中非常缺乏如何让Mezzanine作为应用程序工作的描述.所以这就是我所做的(在一次痛苦的半天黑客攻击之后)将其整合(有点):

  1. 下载仓库并将其复制到您的项目中
  2. 运行包的setup.py
  3. cd到包并运行mezzanine命令来创建一个新的应用程序(mezzanine-project <project name>),假设您使用该名称blog作为您的<project_name>.
  4. local_settings.pyor settings.py文件中,设置DATABASESdict以使用项目的数据库.
  5. createdb从夹层manage.py文件运行该命令

现在是时候开始hack-fest了:

  1. 在项目的settings.py文件中,添加blogINSTALLED_APPS
  2. 将一些配置变量添加到Mezzanine所期望的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
  3. 添加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",....````
  4. 添加Mezzanine期待的一些INSTALLED_APPS: .... "mezzanine.boot", "mezzanine.conf", "mezzanine.core", "mezzanine.generic", "mezzanine.blog", "mezzanine.forms", "mezzanine.pages", "mezzanine.galleries", "mezzanine.twitter", ....
  5. 在模板文件夹添加引用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'),
  6. 最后,如果你喜欢我,你将不得不覆盖extends夹层模板中的一些路径,最明显的是"blog_post_list.html",它只是扩展base.html,而你希望它扩展夹层特定base文件.所以去该文件,并替换{% extends "base.html" %}{% extends "core/templates/base.html" %}.


Ste*_*ald 5

常见问题包括:

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

TLDR:夹层添加了一些设置,应用程序,中间件和上下文处理器,所有这些都在其默认settings.py文件中定义-您只需要根据需要提取足够的内容即可。