- 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 ce même fichier, je vais créer la classe qui va représenter ce modèle.On crée une classe avec l'instruction class.La classe s'appelle Product et elle va hériter de models.models,
00:00:11 :la classe de base de tous les modèles avec l'ORM de Django.Normalement, cette classe est déjà importée.Le module Models est importé automatiquement dans ce fichier models.py.
00:00:21 :Si ce n'est pas le cas, vous pouvez rajouter la ligne d'import.On hérite de models.models cette classe ici.N'oubliez pas la majuscule sur le M.
00:00:30 :Ensuite, on va pouvoir créer les champs.On va avoir un champ pour le nom, comme on l'avait dit, qui va s'appeler Name.On va tout faire en anglais.
00:00:38 :Name va être Models et on va faire un charField.Un charField puisque le nom de l'article sera relativement court.On n'a pas besoin de stocker énormément de caractères.
00:00:47 :On a le choix entre un charField ou un textField.TextField, on l'utilisera pour la description qui pourrait être un peu plus longue.Le charField, on est obligé de lui indiquer une maxLength,donc une longueur maximale.
00:00:58 :Je vais mettre 128 caractères, ça me semble être largement suffisant.Si vous voulez avoir une idée du nombre de caractères que ça représente,moi ce que je fais généralement, c'est que je sélectionne par exemple cette ligne iciet tout en bas dans PyCharm, vous pouvez voir le nombre de caractères qui sont sélectionnés.
00:01:11 :Et vous voyez que tout ça ici, ça représente 39 caractères.Donc ça veut dire qu'on pourrait avoir à peu près 3 ou 4 fois ce nombre de caractères icipour le nom d'un produit, ça me semble être largement suffisant.
00:01:23 :Je préfère toujours en mettre un petit peu plus, comme ça on est sûr.Ensuite, on va voir le prix.Le prix dans ce cas-ci, ça peut être un Integer ou un FloatField.
00:01:31 :Moi, je vais préférer mettre un FloatField.Vous verrez, dans certains cas, il y a des prix qui sont exprimés en nombre entier.C'est le cas notamment sur Stripe.
00:01:39 :Si vous voulez créer un produit à 20€ ou 20,50€,vous allez l'exprimer comme ceci, 100, avec un nombre entier.Et en fait, il va après de son côté faire la division.
00:01:49 :Donc il va diviser ce prix par 100 pour avoir le prix réel avec la virgule,donc 20,50€ par exemple.Moi, dans ce cas-ci, je préfère y aller directement avec un FloatField.
00:01:58 :Peut-être qu'il y a des raisons pour lesquelles Stripe préfère,dans son cas, travailler uniquement avec des Integers.Personnellement, ça ne m'a jamais posé de problèmede travailler directement avec des Floats pour le cas d'un prix.
00:02:09 :Donc dans mon cas, je vais créer un FloatFieldet je vais lui donner une valeur par défaut de 0,0.On va ensuite créer la quantité en stock.
00:02:17 :Je vais l'appeler tout simplement Stock.On pourrait l'appeler également Quantity ou quelque chose du genre.Je vais l'appeler Stock, c'est assez explicite.Et dans ce cas-ci, ça va être un IntegerField comme on l'avait dit,puisqu'on ne peut pas avoir un demi-article.
00:02:28 :Donc là, dans ce cas-ci, ce sera 0, 1, 2 ou des nombres entiers comme ceci.Je vais mettre par défaut 0, on aura 0 éléments en stock.
00:02:35 :On va mettre ensuite la description qui va être un TextField.Pourquoi un TextField et pas un ChartField ?Tout simplement parce que dans ce cas-ci,on pourrait avoir une description assez longue,de beaucoup plus que 128 caractères.
00:02:47 :Donc on veut se laisser la place.On va mettre Blank égal à True,puisqu'on veut permettre à l'administrateurde ne pas forcément mettre une description.
00:02:55 :Donc si on ne met pas Blank égal à True,il sera obligé, en créant un produit,de mettre une description.C'est quelque chose qui peut être fait plus tard.
00:03:02 :Donc moi, je vais mettre Blank égal à Truepour qu'on puisse créer un produitsans forcément qu'il n'y ait de description.Et pour finir, on va faire un FieldThumbnailqui représente l'image.
00:03:12 :On peut faire ça avec directement un ImageField.Et là, on va avoir plusieurs choses à spécifier.On va spécifier où est-ce qu'on souhaite le mettre,dans quel sous-dossier on souhaite mettre ces images.
00:03:22 :Donc ça, c'est le paramètre UploadTo.Et moi, je vais le mettre dans un sous-dossierque je vais appeler Products.Donc ça, ça va permettre d'organiser les choses.
00:03:29 :Imaginons qu'on ait différents modèlesqui nécessitent des images.Et pour ne pas avoir tout dans le même dossier,on peut spécifier dans ce paramètre UploadTooù est-ce qu'on souhaite mettre les imagesqui vont être associées à ce modèle.
00:03:41 :Donc dans mon cas, je vais le mettreà l'intérieur d'un dossier Products.Également, on souhaite permettre, là encore,de ne pas forcément associer d'imagesdirectement avec un produit.
00:03:51 :Donc pour ça, on va mettre Blank égale à True.Et dans le cas d'un ImageField,on est obligé de spécifier un autre paramètrequi est Null égale à True.
00:03:59 :Puisque dans le cas d'un champ qui est du type Text,si on ne met rien, par défaut, dans la base de données,il va mettre une chaîne de caractère vide.
00:04:06 :Là, comme on a un type de champ qui est différent,qui ne peut pas être représenté par du texte,c'est une image,si on met juste Blank égale à True,il ne pourra pas mettre une chaîne de caractère vide.
00:04:16 :Donc on est obligé de lui spécifier Null égale à Truepour spécifier qu'on peut mettre pour ce champune valeur nulle dans la base de données.
00:04:22 :Donc une valeur nulle en SQL,c'est Null comme ceci, c'est l'équivalent du None en Python.Et donc on est obligé de spécifier cette valeur à Truepour qu'on puisse ne pas avoir d'éléments dans ce champ.
00:04:32 :Donc comme ça, on aura un élément videet dans la base de données, on aura ce fameux Nullpour le langage SQL.Donc voilà pour tous les champs, le nom, le prix,le stock, la description et le thumbnail.
00:04:43 :Donc rien de bien compliqué pour l'instant,il faut juste s'assurer de bien mettre les élémentsque vous avez envie. Par exemple, le Max Length ici,
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.