Print

Print


On Thu, Feb 13, 2014 at 7:13 PM, Coral Sheldon-Hess
<[log in to unmask]>wrote:

> Here's a broad question, re: Python and Django: If you've made the switch,
> what has your experience been? Has Django (or any other Python framework)
> given you something cool that was lacking in your previous
> language/framework/CMS? Has it helped you build something awesome? Have you
> found it enabling or limiting in any way?


I found it shockingly straightforward to get started. djangobook.com is
excellent, though out of date. I agree with Francis that Two Scoops is
indispensable. #django is friendly. docs.djangoproject.com is pretty good
most of the time (although when it is not you can tear your hair out for a
week *cough*FormWizard).

I haven't done a CMS on Django; I have worked on http://unglue.it and
http://customfit.makewearlove.com, both Django-based.  Oh, and there's
http://www.babyanimalslovelita.org/ , because building toy Django projects
in a day FTW.

I love that it lets me work with database *concepts* without ever having to
write a line of actual SQL ( *shudder* ).  (I mean, yes, you can write SQL,
you may run into cases where you want to for performance reasons, although
to be honest you probably won't. But you don't HAVE to.)  And south handles
the black magic of database migrations pretty effectively, for when you
need to make changes.  Also that there's probably a module that does X, for
most values of X.



> And then a more specific question: Given the following requirements, do you
> have a Django-based CMS you'd recommend?


Here is 100% of what I know about Django-based CMSes: the Mezzanine
maintainer seems like a decent sort.


>  * There's a chance we'll want to offer other editors access to it, at some
> point, so it would be nice if I can provide a WYSIWYG interface, which I
> also am going to want the option to *turn off*, for my own sanity.
>

There's a flatpages app that probably does this.  In a couple weeks I'll
even be able to tell you something about it.


> plans, so easy JavaScript (preferably jQuery) integration is a must.
>

Write it into the template just like you'd write it into HTML anywhere.


> * Because I probably won't be here forever, it's of the utmost importance
> that whatever we end up with is easy to maintain.
>

Yeah, this is my main concern with your idea -- the roll-your-own flavor
means that you are RIGHT NOW reducing your institution's truck number to 1.
 I want to hear your documentation and training plans so I can stop
twitching.


> * I'm used to MODx's page-ID model, where I can move pages around, and as
> long as I don't delete/recreate a page (thereby changing its ID), I don't
> have to change any links anywhere else in the CMS. I'd really like
> something that will work equally well, since the odds that I'll nail the
> information architecture on the first try are probably slim. :) (Maybe this
> one should go without saying, since I know WordPress and many other CMSs do
> this, but if you have to err, err on the side of being explicit, right?)
>

Django has a built-in concept of named URLs. You declare the names when you
define the URLs and best practice is to reference them in templates by
their names:
{% url myurlname %}

This means you can futz around arbitrarily with what the URLs in your
location bar look like, and none of the template references change (and
yes, it's like *clouds part, angels sing* ).  There's a hiccup if you
decide you need to move some URLs to a new namespace, but it's not
conceptually hard work to fix that, just conscientious.


> * A nice forms-builder plugin (module?) would be a great thing to have, as
> well. We use FormIt in MODx, and now I'm spoiled.
>

Building django forms from database models is tremendously slick and makes
your CRUD operations very straightforward.  There's a crispy-forms module
you can use to make them all pretty; frankly it's a pain (the documentation
is copious yet never QUITE seems to answer your question), but it does give
you eleventy bajillion tools for making things look exactly like you want,
and is Bootstrap-friendly.  Forms not linked to db models take a bit more
work, but I have rarely found the need to write them.

Andromeda Yelton
LITA Board of Directors, Director-at-Large, 2013-2016
http://andromedayelton.com
@ThatAndromeda