Problème sur le champ incompatibilites de l'unite qui créé une migration a l'installation pour rien.#63
Open
lvillanne-recia wants to merge 3 commits intoNoethys:mainfrom
Open
Problème sur le champ incompatibilites de l'unite qui créé une migration a l'installation pour rien.#63lvillanne-recia wants to merge 3 commits intoNoethys:mainfrom
lvillanne-recia wants to merge 3 commits intoNoethys:mainfrom
Conversation
…té des incompatibilités d'unités
…des unités afin d'éviter leur variation
…des incompatibilités sur les Unite
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bonjour,
Lors de la procédure d'installation, au moment de faire le
python3 manage.py makemigrationsdjango génére deux requêtes de migration, une sur le modèleuniteet une autre relative aux permissions (#64).Cette PR a pour but de supprimer une fois pour toute cette requête de migration sur le modèle
unitecar cette requête vient d'une imprécision qui fait que Django ne se comporte pas de la même façon en fonction de sa version.Voici le détail du problème :
Tout d'abord voici la migration généré :
Je constate que dans la migration 192 du 27/09/2025 il y'a une modif sur ce même field :
Et encore avant sur la migration 168 du 09/11/2024 il y'a une modif sur ce même field :
Donc la migration bascule d'un état a l'autre en fonction de quelque chose et je pense que ce quelque chose est la version de Django.
En effet, après avoir fait quelques recherches, il s'agit d'un problème connu sur Django quand il y'a plusieurs fields qui pointent sur self, ce qui est le cas ici sur
Uniteavecincompatibilites,dependancesetsolidaires.Une bonne pratique pour éviter ce genre de problème est de toujours définir un
related_nameexplicitement sur les fields qui pointent surself, cela évite a Django de se mélanger lors de la génération automatique entre plusieurs champs pointant surself.solidairesn'est pas affecté car il a déjà unrelated_name, il ne reste donc queincompatibilitesà fixer pour régler ce problèmedependances.Il y'a une subtilité en plus pour
incompatibilitescar j'ai aussi dû définirsymmetricalà False, or comme avant le code enregistrait automatiquement la relation inverse, j'ai dû écrire un morceau de code pour faire a la main l'enregistrement de la relation inverse pour conserver le même fonctionnement.J'ai ajouté une série de tests pour montrer que ce code permet de conserver le même comportement qu'avant pour sauver la relation inverse quand le formulaire est utilisé.
Pour lancer la série de test :