我已经有一个现有的 Django 网站。我添加了一个新的 url 路由“/blog/”,我想在其中创建一个夹层博客。如果可以将 Mezzanine 安装为现有 Django 站点中的应用程序,而不是独立的博客应用程序。
问问题
4376 次
2 回答
13
如果您像我一样,您会发现常见问题解答中严重缺乏对如何让 Mezzanine 作为应用程序运行的描述。所以这就是我所做的(经过半天痛苦的黑客攻击)来整合它(有点):
- 下载 repo 并将其复制到您的项目中
- 为包运行 setup.py
cd
到包并运行夹层命令以创建一个新应用程序(mezzanine-project <project name>
),假设您使用名称blog
作为您的<project_name>
.- 在
local_settings.py
orsettings.py
文件中,将DATABASES
dict 设置为使用项目的数据库。 createdb
从夹层manage.py
文件运行命令
现在是开始 hack-fest 的时候了:
- 在项目的 settings.py 文件中,
blog
添加INSTALLED_APPS
- 将 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
- 添加一些 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”,....```` - 添加 Mezzanine 期望的一些 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" %}
.
于 2015-01-15T20:02:41.953 回答
5
常见问题解答中对此进行了介绍:
TLDR:Mezzanine 添加了一些设置、应用程序、中间件和上下文处理器,所有这些都在其默认的 settings.py 文件中定义——您只需要根据您的需要提取足够多的这些。
于 2013-03-27T19:44:45.377 回答