You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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).
The text was updated successfully, but these errors were encountered:
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 traductionsdescription_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ètragenull
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#144Comportement souhaité : les champs traductions utilisent une valeur texte vide comme valeur par défaut.
Pistes :
django-modeltranslation
sur ce point, peut-être possible de le configurer ? Ou en tout cas de le corriger au niveau des modèles ?The text was updated successfully, but these errors were encountered: