Lorsque j'utilise l'héritage multi-tables, Django crée deux tables - une pour la classe de base et une pour la dérivée, pointant vers la première. Est-il possible de conserver l'entrée de la table de base lors de la suppression de la table dérivée et de créer une autre entrée pour un autre modèle? En d'autres termes, j'ai des modèles: A, B (dérivé de A), C (dérivé de A). Je souhaite convertir un objet de type B en type C. La copie n'est pas une bonne solution car A sert d'ensemble d'éléments, donc les éléments pointent dessus avec une clé ForeignKey.Héritage du modèle Django - Puis-je changer de type de modèle?
2
A
Répondre
0
Il n'existe pas de méthode intégrée pour ce faire. Si vous devez conserver l'entrée dans la table de base parce que les clés FK pointent dessus, vous devrez écrire des méthodes de gestionnaire pour manipuler les tables B et C en utilisant le langage SQL brut. Si vous utilisez un SGBDR qui ne prend pas en charge l'intégrité référentielle, vous pouvez simplement copier les données, supprimer l'instance B et créer l'instance C avec le PK défini manuellement sur PK de B.
0
S'il n'y a pas de manière intégrée, alors je pense que le faire manuellement n'est pas si mauvais - faites c
une copie de b
, puis faites b.items.update(itemset=c)
.
Questions connexes
- 1. MVC modèle/héritage modèle
- 2. Héritage de modèle Django et limiter_choices_to
- 3. Django héritage modèle, les modèles de filtrage
- 4. Héritage de modèle Django: Champs de classe dupliqués
- 5. Obtention du nom de modèle dans le modèle django
- 6. C# héritage motif-modèle question
- 7. Django: Nom du modèle clash
- 8. Commutation de répertoire de modèle Django
- 9. Conversion de type de modèle
- 10. Couplage lâche des applications et héritage du modèle
- 11. Demande d'utilisateur modèle Django
- 12. Comment fonctionnent les champs du modèle Django?
- 13. questions de conception de modèle django
- 14. Django étend le modèle
- 15. Comment changer modèle de contrôle de Style.Triggers
- 16. balises de modèle Django personnalisé et chargeurs modèle
- 17. Spécification de l'ordre de tri du modèle associé à Django
- 18. Paramètre de modèle non-type ... c'est un modèle! (C++)
- 19. modèle dans Django
- 20. Affichage des propriétés du modèle de Django sur Administrateur
- 21. définir une relation modèle django
- 22. Modification du type de champ dans un Django ModelFormset
- 23. étiquettes Django et traductions - Modèle de conception
- 24. Django TimeField Modèle sans secondes
- 25. Prépopulation de Django (non-modèle) Formulaire
- 26. Django - spécifie quel gestionnaire de modèle l'administrateur Django doit utiliser
- 27. Django admin, section sans "modèle"?
- 28. Django, Overriding comportement Admin Modèle
- 29. Déboguer Django Admin Modèle Résolution
- 30. structure du modèle de base de données
MySQL a pris en charge l'intégrité référentielle depuis plus de 5 ans maintenant chaque fois que InnoDB est utilisé comme moteur (c'est-à-dire les installations de production les plus modernes) –
Je sais, il fallait juste creuser quand même :-) –