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

时间:2013-03-27 19:19:41

标签: python django mezzanine

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

2 个答案:

答案 0 :(得分:13)

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

  1. 下载回购并将其复制到您的项目中
  2. 运行包的
  3. 的setup.py
  4. cd到软件包并运行mezzanine命令创建一个新应用程序(mezzanine-project <project name>),让我们假设您使用名称blog作为<project_name> }。
  5. local_settings.pysettings.py文件中,设置DATABASES dict以使用您项目的数据库。
  6. 从夹层createdb文件
  7. 运行manage.py命令

    现在是时候开始讨价还价了:

    1. 在项目的settings.py文件中,将blog添加到INSTALLED_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期待的一些中间件: ```` ... &#34; mezzanine.core.request.CurrentRequestMiddleware&#34 ;, &#34; mezzanine.core.middleware.RedirectFallbackMiddleware&#34 ;, &#34; mezzanine.core.middleware.TemplateForDeviceMiddleware&#34 ;, &#34; mezzanine.core.middleware.TemplateForHostMiddleware&#34 ;, &#34; mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware&#34 ;, &#34; mezzanine.core.middleware.SitePermissionMiddleware&#34 ;,

      如果使用任何SSL设置,请取消注释以下内容:

      &#34; mezzanine.core.middleware.SSLRedirectMiddleware&#34;,

      &#34; mezzanine.pages.middleware.PageMiddleware&#34 ;, .... ````
    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路径,最明显的是&#34; blog_post_list.html&#34;它只是扩展base.html,而是希望它扩展夹层特定的base文件。因此,请转到该文件并将{% extends "base.html" %}替换为{% extends "core/templates/base.html" %}

答案 1 :(得分:5)

这在常见问题解答中有所介绍:

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

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