Mezzanine-Grappelli makes Mezzanine ♥ Grappelli.
For compatibility reasons, Mezzanine uses forks of Grappelli and Filebrowser, known as grappelli-safe and filebrowser-safe.
You want the awesomeness of Mezzanine with the sweetness of the latest Grappelli version? This application does exactly that: it allows you to use the full power of the latest vanilla versions of both Grappelli and Filebrowser in your Mezzanine projects.
First, install mezzanine-grappelli with pip (this will automatically install Grappelli and Filebrowser as well):
pip install mezzanine-grappelli
In your settings.py file, adapt the value of
PACKAGE_NAME_FILEBROWSER and PACKAGE_NAME_GRAPPELLI:
PACKAGE_NAME_FILEBROWSER = "filebrowser" PACKAGE_NAME_GRAPPELLI = "grappelli"
Still in your settings.py file, add mezzanine_grappelli, grappelli and
filebrowser to your INSTALLED_APPS (make sure they appear before any
mezzanine app):
INSTALLED_APPS = (
"mezzanine_grappelli",
PACKAGE_NAME_GRAPPELLI,
PACKAGE_NAME_FILEBROWSER,
...
)
Add Grappelli URLs to your urls.py file:
urlpatterns += patterns("",
...
("^grappelli/", include("grappelli.urls")),
...
)
You're done!
The project still being in its early days, it has a few rough edges you should be aware of.
Use classic Django TabularInline instead.
Filebrowser error: "Error finding Upload-Folder (site.storage.location + site.directory). Maybe it does not exist?"
That's because Filebrowser doesn't automatically create the uploads directory,
so just create the MEDIA_ROOT + 'uploads/' directory
When using FileField fields you need to put the format in lowercase
(ie. "image" instead of "Image") otherwise you'll get a Filebrowser exception.
That's especially true for already defined Mezzanine models (such as the
BlogPost model). To fix the issue for already-defined Mezzanine models, you
can add the following to your settings file:
FILEBROWSER_SELECT_FORMATS = {
'File': ['Folder', 'Image', 'Document', 'Video', 'Audio'],
'Document': ['Document'],
'Media': ['Video', 'Audio'],
'Image': ['Image'],
'image': ['Image'],
}
- Make
TabularDynamicInlineAdminwork or at least fall back to a usable solution
If you find bugs, you're very welcome to report them using the Github issue tracker.

