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

Traiter le problème des champs nullables #6529

Open
Arnaud-D opened this issue Sep 30, 2023 · 1 comment
Open

Traiter le problème des champs nullables #6529

Arnaud-D opened this issue Sep 30, 2023 · 1 comment
Labels
C-Back Concerne le back-end Django S-BUG Corrige un problème

Comments

@Arnaud-D
Copy link
Contributor

Description du bug

En base de données, certains champs contenant des chaînes de caractères autorisent deux valeurs différentes pour représenter des chaînes vides :

  • la valeur null (le champ est nullable), qui correspond alors à None ;
  • la chaîne vide en tant que telle : "".

Avoir deux valeurs pour la même sémantique peut compliquer le code (voir cette PR abandonnée pour cette raison) ou créer des comportements suprenants, et c'est la raison pour laquelle ce n'est pas recommandé (voir la doc de Django).

Comportement attendu

Un champ vide pour une chaîne de caractère est un champ avec "" dedans et ces champs ne sont pas nullable.

@Arnaud-D Arnaud-D added S-BUG Corrige un problème C-Back Concerne le back-end Django labels Sep 30, 2023
@philippemilink
Copy link
Member

Je rajoute quelques infos qui sont dans la PR citée, qui peut aider à résoudre ce ticket :

Cela amenait des contenus pas en bêta à s'afficher en bêta sur la liste des contenus d'un utilisateur. Par exemple https://beta.zestedesavoir.com/tutoriels/voir/SpaceFox/?filter=beta ne doit pas contenir Introduction à l'astronomie. Le problème semble être spécifique à MariaDB (tout du moins il ne se produit pas avec SQLite), mais je n'ai pas réussi à le reproduire, même avec MariaDB en local.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django S-BUG Corrige un problème
Projects
Status: À traiter
Development

No branches or pull requests

2 participants