Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set empty text value as default for translation fields #4192

Open
marcantoinedupre opened this issue Jun 13, 2024 · 0 comments
Open

Set empty text value as default for translation fields #4192

marcantoinedupre opened this issue Jun 13, 2024 · 0 comments

Comments

@marcantoinedupre
Copy link
Contributor

On utilise le package django-modeltranslation pour marquer certains champs textes comme traduits. Les champs traduits reçoivent automatiquement autant de champs traductions (translation fields) qu'il y a de langues configurées sur l'instance.

Par exemple un champ description donnerait des champs traductions description_fr, description_en, description_es, etc. Ces sous-champs sont accessibles via les attributs correspondants sur une instance de modèle.

Notre problème est que les champs traductions de django-modeltranslation ne conserve pas le paramètrage null de leur champ d'origine : ils sont toujours nullable.

Dans le cas où l'objet est créé ou modifié via un formulaire c'est OK : les champs traductions de type texte reçoivent bien un texte vide en valeur par défaut.

Ce n'est pas le cas si l'objet est créé par programmation, en particulier s'il est créé/modifié dans un processus d'import. Dans ce cas tous les champs traductions ne recevant pas de valeur explicite sont à None => NULL dans la base de données.

Ça pose le problème que 2 valeurs cohabitent pour la valeur vide de ces champs textes. Ces 2 valeurs possibles sont exposées dans l'API publique, ce qui complexifie le travail des développeurs qui l'utilisent.

Ce ticket sur django-modeltranslation fait référence à cette question : deschler/django-modeltranslation#144

Comportement souhaité : les champs traductions utilisent une valeur texte vide comme valeur par défaut.

Pistes :

  • comprendre le fonctionnement de django-modeltranslation sur ce point, peut-être possible de le configurer ? Ou en tout cas de le corriger au niveau des modèles ?
  • ou le corriger au niveau des parsers, impliquera sans doute d'avancer le sujet de l'import des traductions par la même occasion (Add languages in parsers #1815).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant