Bonjour à tous,
Pour un projet Django sur lequel je travaille, j’utilise django-simple-history pour gérer l’historique de chacun de mes modèles. Tout fonctionne très bien lorsque je crée, modifie ou supprime un objet, la bibliothèque génère un <HistoricalObject> compilant certaines infos nécessaires au suivi. Mon problème est lorsque j’effectue une suppression en cascade.
Par exemple, j’ai une table B qui hérite d’une table A. Quand je supprime un objet de ma table A, je lui ai demandé de supprimer aussi tous ses objets liés dans la table B. Django-simple-history génère un <HistoricalObject> pour l’objet de ma table A mais pour le B il est "corrompu" avec "erreur de formatage" parce que l’objet B supprimé possède en attribut l'objet A qui n’existe plus à ce moment et cela crée une erreur.
Je ne peux même pas lire le <HistoricalObject> de B lorsque je l’interroge.
L’erreur est :
MyApp.models.tableA_object.DoesNotExist : tableA_object matching query does not exist.
Je n’ai rien trouvé sur les forums à ce sujet et ça me bloque vraiment, je ne peux pas faire sans suppression en cascade et django-simple-history répond à tous mes besoins sauf celui-ci. J'ai du mal à croire que les développeurs n'aient pas pensé à gérer la suppression en cascade qui est assez classique quand on utilise Django..
Quelques infos si besoin :
Django 4.0.3
django-simple-history 3.1.1
MySql
Python 3.9.7
Merci de votre aide !
Partager