Nous avons fait ce assez largement dans nos applications avec MySQL à travailler autour de la base de données unique limitation de Django. Notre demande a un couple de bases de données qui vivent dans une seule instance MySQL. Nous pouvons réaliser de la croix-modèle de base de données se joint à cette façon aussi longtemps que nous avons vues créées pour chaque table, dans le "courant" de la base de données.
Aussi loin que les insertions, mises à jour en vue d'aller à notre cas d'utilisation, d'un point de vue est fondamentalement une "select * from [db.table];". En d'autres termes, nous n'en fais pas des jointures complexes ou de filtrage afin d'insérer ou de mises à jour de déclenchement de save() fonctionnent tout aussi bien. Si votre cas nécessite des jointures complexes ou importantes de filtrage, je soupçonne que vous n'aurez pas de problèmes pour les scénarios de lecture seule, mais peut insérer/mettre à jour des questions. Je pense qu'il y a certaines contraintes sous-jacentes dans MySQL qui vous empêchent de mise à jour dans les vues que la croix tables, sont des filtres complexes, etc.
De toute façon, votre kilométrage peut varier si vous êtes en utilisant un SGBD autre que MySQL, mais Django n'a vraiment pas de soins si son assis sur le dessus d'une table physique ou de la vue. Ça va être le SGBDR qui détermine si elle fonctionne en fait comme vous l'attendez. Comme un précédent intervenant a noté, vous serez probablement jeter des syncdb par la fenêtre, même si nous avons travaillé avec succès autour d'elle avec un post-syncdb signal que les gouttes de la table physique créé par Django et dirige notre "créer une vue... de la commande". Cependant, le post-syncdb signal est un peu ésotérique dans la façon dont il se déclenche, donc caveat emptor.
EDIT: bien sûr, en "post-syncdb signal", je veux dire "post-syncdb listener"