I’m in the middle of a fairly big Django project, but one of the problems was that I wanted to be able to use the Django admin section (which is brilliant), but wanted it to be easy enough for people to add “rich” content.* The biggest problem with this is getting a decent WYSIWYG editor into the admin, but also getting a way of managing media (images, etc) that isn’t too complicated. This turns out to be a lot easier than expected, as long as you know where to look…..
For your WYSIWYG editor, TinyMCE seems the best drop-in tool, mainly because it’s trivial to get all the textareas in the admin section to be replaced with TinyMCE editor panes. I recommend reading this and this in order to get this up and running.
The big problem with TinyMCE is that the default image button doesn’t allow you to upload an image – it requests a URL. Reading around the ‘net, it seemed there were only 2 solutions for this – the commercial plugin from the tinymce guys, or a plugin called ibrowser. I went with ibrowser, but it was a PITA to configure, and I never did get it working correctly. I gave up when I managed to get almost everything working (could browse files, etc) except upload. Given that the project is quite old, I thought my chances of getting decent support were unlikely.
I have finally found the answer – a wonderful Django admin plugin called FileBrowser – it adds a nice filebrowser into the admin tool, but also contains some code so that it can be called from TinyMCE’s image dialog – you simply clicked the ‘Image’ button in the editor, and then the ‘browse’ button from there, and it pops up the filebrowser. Magic!
Hopefully this is as helpful to you as it was to me
mrBen
* I realise that, in many cases, you don’t really want your end users having control over how content is displayed, but certainly for this project I felt it was an acceptable compromise.