At $JOB we have very successfully integrated django into our existing
(homebrew) C++ ORM and web framework - we do new development in
django, and gradually the C++ code diminishes (only 390k LOC to go!).
Our objects are beyond complex, a typical item has some 100+ M2M
relationships, often with extra data in the join table. Django can
handle this mostly fine, I suppose the one caveat is that our
pre-existing system modelled very closely the database structure that
django would have used.
So if your data is nicely BCNF already, you shouldn't have many
problems. The Django docs has a section on integrating with legacy
databases, don't bother looking at it, it suggests to use inspectdb..
Instead, model your objects and then write django model classes for
them, one by one, setting the appropriate field and meta options so
that it finds the right tables and columns for that model. Lather,
rinse, repeat until all your models are done.
Cheers
Tom