我已经有一个Django网站了。我添加了一个新的url路由“/blog/”,我想在其中创建一个夹层博客。如果可以在现有的Django站点中安装夹层作为应用程序,而不是独立的博客应用程序。
最佳答案
如果你像我一样,你会发现FAQ在如何让夹层作为一个应用程序工作的描述中非常缺乏。因此,以下是我(在经历了痛苦的半天黑客攻击之后)为使其集成(在某种程度上)所做的:
下载repo并将其复制到您的项目中
为包运行setup.pycd
到包并运行mezzanine命令来创建一个新的应用程序(mezzanine-project <project name>
),假设您使用名称blog
作为您的<project_name>
。
在local_settings.py
或settings.py
文件中,设置DATABASES
dict以使用项目的数据库。
从夹层文件运行createdb
命令
现在是时候开始黑客活动了:
在项目的settings.py文件中,将manage.py
添加到blog
向夹层期望的settings.py添加一些配置变量:INSTALLED_APPS
添加一些夹层所期望的中间件:
` ` `
…
“夹层.核心.请求.当前请求中间件”,
“夹层.核心.中间件.重定向回退中间件”,
“夹层.core.middleware.templateForDeviceMiddleware”,
“夹层.core.middleware.templateforhostmiddleware”,
“夹层.core.middleware.adminloginInterfaceSelectorIddleware”,
“夹层.核心.中间件.站点许可中间件”,
如果使用任何SSL设置,请取消注释以下内容:
“夹层.核心.中间件.sslRedirectMiddleware”,
“夹层.pages.middleware.pagemiddleware”,
…
` ` `
添加一些夹层预期安装的应用程序:PACKAGE_NAME_FILEBROWSER = "filebrowser_safe"PACKAGE_NAME_GRAPPELLI = "grappelli_safe"GRAPPELLI_INSTALLED = FalseADMIN_REMOVAL = []RATINGS_RANGE = range(1, 5)TESTING = FalseBLOG_SLUG = ''COMMENTS_UNAPPROVED_VISIBLE = TrueCOMMENTS_REMOVED_VISIBLE = FalseCOMMENTS_DEFAULT_APPROVED = TrueCOMMENTS_NOTIFICATION_EMAILS = ",".join(ALL_EMAILS)COMMENT_FILTER = None
将对模板文件夹的引用添加到您的...."mezzanine.boot","mezzanine.conf","mezzanine.core","mezzanine.generic","mezzanine.blog","mezzanine.forms","mezzanine.pages","mezzanine.galleries","mezzanine.twitter",....
元组中mezzanine
最后,如果您像我一样,您必须覆盖夹层模板中的一些TEMPLATE_DIRS
路径,最明显的路径是“blog-post-list.html”,它只扩展了os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'),os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
,而您希望它扩展夹层特定的extends
文件。因此,转到该文件并将base.html
替换为base
。