- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie je vais vous expliquer quelque chose qui perturbe beaucoup les débutants avecles modèles, c'est la différence entre le paramètre blank et le paramètre null. Donc
00:00:09 :on a des paramètres blank ici qui sont à true pour certains champs et à false pour d'autres.Et vous verrez parfois également le paramètre null qui va être égal à true ou à false.
00:00:20 :Généralement on va le voir à true puisque par défaut il est à false. Alors qu'est ce que çaveut dire ce paramètre null ? Ça veut tout simplement dire que du côté de la base de données
00:00:30 :on va permettre à notre base de données de stocker une valeur nulle dans le champ correspondant.A l'inverse blank, qu'est ce que ça veut dire ? Eh bien ça veut tout simplement dire qu'on va
00:00:40 :permettre que ce champ soit vide au niveau de l'interface, donc des formulaires notammentqu'on va utiliser à partir de nos modèles. Donc si je mets blank égale false ici, ce que je veux
00:00:51 :dire c'est que si je présente un formulaire à un utilisateur, eh bien je ne veux pas qu'il puisserentrer une valeur vide. Donc dans le formulaire si on me demande le titre du livre, si je ne mets
00:01:01 :rien j'aurai une erreur. Si par contre je mets blank égale true, là je signifie à Django que ce champpourra être vide. Ensuite vous allez voir donc des fois des gens qui mettent null égale true. Alors
00:01:13 :ça c'est à éviter sur certains champs, notamment sur les champs de type chaîne de caractère,donc comme ici un char field, ça va stocker des chaînes de caractère. Alors pourquoi c'est à
00:01:22 :éviter dans ce cas-ci ? Parce que Django quand on lui donne quelque chose qui est vide, donc si parexemple j'ai blank qui est égale à true ici, ça veut dire que je peux ne pas rentrer de valeur. Et
00:01:32 :si je fais ça quand je crée mon objet, eh bien Django va stocker dans ma base de données un champavec une chaîne de caractère vide. Donc une chaîne de caractère vide comme ça tout simplement. Si
00:01:42 :vous précisez null égale true, eh bien ça veut dire qu'à la place d'une chaîne de caractère vide,pour une valeur vide dans la base de données, il pourrait utiliser à la place la valeur nulle,donc cette valeur qu'on retrouve dans le langage des bases de données, qui correspond en Python
00:01:57 :à ce qu'on a avec le none, donc qui correspond à une valeur qui ne représente rien. Et pourquoidonc il ne faut pas mettre null égale true dans un champ de type char field ? Eh bien parce que
00:02:07 :vous aurez deux possibilités, et par défaut Django va utiliser la chaîne de caractère vide. Donc çane sert à rien dans ce cas-ci, puisqu'on n'aura pas de problème. Par contre sur certains champs,
00:02:17 :comme par exemple les champs avec des nombres, comme float field ici, vous allez voir que sij'essaie de créer un objet, donc ici en créant un objet à partir de book.object.create, et je lui
00:02:28 :donne une valeur ici pour le titre, et si j'essaie de faire ça, vous allez voir qu'on a une erreur.On a not null constraint failed, et ça nous indique qu'ici que le problème se trouve sur price, doncsur ce champ ici. Alors pourquoi ? Parce qu'on a spécifié blank égale true, donc là on ne spécifie
00:02:43 :pas de valeur pour le prix, mais dans la base de données, eh bien il ne sait pas quelle valeurmettre. Et comme on n'a pas spécifié ici null égale true, il ne peut pas mettre la valeur nulle,
00:02:53 :donc cette valeur-ci, dans la base de données. Donc ce qu'on pourrait faire ici, c'est plusieurschoses. On pourrait définir une valeur par défaut, donc default égale à 0, et dans ce cas-ci si on
00:03:02 :ne donne pas de valeur, eh bien il va utiliser cette valeur de 0 par défaut, ou alors on va direnull égale true. Et dans ce cas-ci, si on ne donne pas de valeur à ce champ, eh bien Django va
00:03:13 :utiliser la valeur nulle dans la base de données, puisqu'il sera autorisé à l'utiliser. Et vousn'aurez donc pas cette erreur ici si jamais vous ne donnez pas de valeur à price, donc quand vouscréez un modèle pour le livre. Donc voilà pour la différence entre blank et null. Donc par défaut,
00:03:29 :blank c'est vraiment au niveau des formulaires, quand vous allez présenter un formulaire à votreutilisateur, est-ce que vous voulez ou non que ce champ soit requis, en quelque sorte, est-ce quevous voulez que si la personne ne rentre pas de données dans le formulaire, eh bien le formulairene soit pas valide. Et null c'est vraiment au niveau de la base de données, est-ce que vous
00:03:46 :acceptez que votre base de données puisse recevoir une valeur nulle pour le champ en question. Etdonc il y a quelques considérations à prendre en compte, comme je vous disais, il y a des endroitsoù ça peut être intéressant d'avoir à la fois blank et nulle, qui sont égales à true, et d'autres
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.