16

我已经有一个现有的 Django 网站。我添加了一个新的 url 路由“/blog/”,我想在其中创建一个夹层博客。如果可以将 Mezzanine 安装为现有 Django 站点中的应用程序,而不是独立的博客应用程序。

4

2 回答 2

13

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

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

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

  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 期望的中间件:```` ... “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",

    “夹层.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" %}.
于 2015-01-15T20:02:41.953 回答
5

常见问题解答中对此进行了介绍:

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

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

于 2013-03-27T19:44:45.377 回答