13đź‘Ť
If you are like me, you will find that the FAQ is sorely lacking in its description of how to get Mezzanine working as an app. So here is what I did (after a painful half day of hacking) to get it integrated (somewhat):
- Download the repo and copy it into your project
- Run setup.py for the package
cd
to the package and run the mezzanine command to create a new app (mezzanine-project <project name>
), let’s say you use the nameblog
as your<project_name>
.- In either the
local_settings.py
orsettings.py
file, set theDATABASES
dict to use your project’s database. - Run the
createdb
command from the mezzaninemanage.py
file
Now it’s time to start the hack-fest:
- In your project’s settings.py file, add
blog
toINSTALLED_APPS
- Add some configuration variables to settings.py that Mezzanine is expecting:
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
- Add some middleware that Mezzanine is expecting:
““
…
“mezzanine.core.request.CurrentRequestMiddleware”,
“mezzanine.core.middleware.RedirectFallbackMiddleware”,
“mezzanine.core.middleware.TemplateForDeviceMiddleware”,
“mezzanine.core.middleware.TemplateForHostMiddleware”,
“mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware”,
“mezzanine.core.middleware.SitePermissionMiddleware”,Uncomment the following if using any of the SSL settings:
“mezzanine.core.middleware.SSLRedirectMiddleware”,
“mezzanine.pages.middleware.PageMiddleware”,
….
““ - Add some INSTALLED_APPS that Mezzanine is expecting:
....
"mezzanine.boot",
"mezzanine.conf",
"mezzanine.core",
"mezzanine.generic",
"mezzanine.blog",
"mezzanine.forms",
"mezzanine.pages",
"mezzanine.galleries",
"mezzanine.twitter",
....
- Add references to the template folders of
mezzanine
to yourTEMPLATE_DIRS
tuple
os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine'),
os.path.join(BASE_PARENT, '<path to mezzanine>/mezzanine/mezzanine/blog/templates'),
- Finally, if your like me, you’ll have to override some of the
extends
paths in the mezzanine templates, the most obvious being in “blog_post_list.html” which just extendsbase.html
, instead you want it to extend the mezzanine specificbase
file. So go to that file and replace the{% extends "base.html" %}
with{% extends "core/templates/base.html" %}
.
👤Bobby
5đź‘Ť
This is covered in the FAQs:
TLDR: Mezzanine adds a handful of settings, apps, middleware and context processors, all defined in its default settings.py file – you just need to extract enough of those, depending on your needs.
👤Steve
- PUT request for image upload not working in django rest
- DRF – How to handle exception on serializer create()?
Source:stackexchange.com