Seul Django modèle, plusieurs tables?
J'ai plusieurs tables temporaires dans une base de données MySQL qui partagent le même schéma et de la dynamique des noms. Comment puis-je utiliser Django à l'interface avec ces tables? Pouvez un unique modèle d'extraire des données à partir de plusieurs tables?
- vous pouvez définir dynamiquement mis à jour ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez, je crois, faire une usine de fonction de retour de votre modèle avec une dynamique db_table.
EDIT: Django ne pas créer une nouvelle instance de la classe
_meta
attribut à chaque fois que cette fonction est appelée. La création d'une nouvelle instance pour les_meta
il dépend du nom de la classe (Django doit mettre en cache quelque part). Une métaclasse peut être utilisé pour modifier le nom de la classe au moment de l'exécution:vous ne savez pas si il est possible de définir dynamiquement sur une classe définie. Je n'ai pas fait moi-même, mais il pourrait fonctionner.Vous pouvez le régler à chaque fois.
db_table
est coincé à tout ce qui est affecté pour la première fois. Il peut être réaffecté, mais il est réaffecté pour chaque instance de la classe (en d'autres termes, il semble qu'il n'existe qu'une seule instance de_meta
).MyModel._meta.db_table
en multi-threads, est-il dangereux?De créer un modèle pour votre table de façon dynamique.
et vous pouvez commencer à interroger la base de données.
models.Model
sera mis en cache. Doncmeta class
est nécessaire de définir différentsmodel name
(clé de cache) et de définir différentesmodel._meta.db_table
.