YouTube2Text

Django #12 - formulaires (2/2) — Transcript

by EvoluNoob · 4,563 words · 675 segments · language en · Watch on YouTube

Full transcript

  1. 0:15bonjour à tous bienvenue sur la seconde
  2. 0:16partie consacrée aux formulaire avec
  3. 0:18Django une vidéo un peu plus courte
  4. 0:20cette fois mais on va revenir un peu
  5. 0:22plus en détail sur la validation des
  6. 0:24formulaires et on va regarder comment
  7. 0:25personnaliser éventuellement ici
  8. 0:28l'occasion se présente et bien comment
  9. 0:30on va se procéder en fait la validation
  10. 0:32de notre formulaire que ce soit sur un
  11. 0:34champ en particulier ou même sur un
  12. 0:36ensemble de champs si par exemple vous
  13. 0:37aviez des champs de formulaires qui
  14. 0:39doivent fonctionner ensemble en tout cas
  15. 0:40qui ont une relation entre par rapport à
  16. 0:43ce qu'il faut saisir on va revenir déjà
  17. 0:45sur le formulaire je vais refaire un
  18. 0:46petit point un petit rappel pour aller
  19. 0:48un peu plus en aussi au niveau des
  20. 0:49explications précédentes pour revenir un
  21. 0:51petit peu sur ce qui concerne la
  22. 0:53validation du formulaire lorsque vous
  23. 0:55allez soumettre le formulaire une fois
  24. 0:56qu'il a été saisi il va y avoir tout un
  25. 0:58tas de règles qui vont devoir être
  26. 1:00validé ces règles sont principalement en
  27. 1:02tout cas en priorité celles définies au
  28. 1:04niveau de la création du formulaire si
  29. 1:06vous en avez donc ça peut être comme on
  30. 1:08l'avait vu dans la séance précédente le
  31. 1:10fait de limiter à une taille un canon de
  32. 1:12caractère maximum le fait de rendre le
  33. 1:15ce genre de choses et bien évidemment en
  34. 1:17dernier lieu nous avons les contraintes
  35. 1:19finalement donc toutes les règles que
  36. 1:21nous avons défini au niveau du modèle
  37. 1:23donc là par exemple si je regarde au
  38. 1:25niveau du livre on voit qu'on avait déjà
  39. 1:27pour le titre indiqué qu'il fallait une
  40. 1:29longueur en fait de titre maximum 32
  41. 1:32vous remarquez également au niveau de la
  42. 1:34quantité qu'on a par défaut une valeur
  43. 1:36de 1 donc si nous avons déjà ces
  44. 1:38informations au niveau du modèle on
  45. 1:40n'est pas obligé de le remettre ici
  46. 1:41c'est pour ça que là par exemple au
  47. 1:42niveau du livre je n'ai pas rien indiqué
  48. 1:44à nouveau qui nous fallait un champ pour
  49. 1:46le titre d'une certaine taille puisque
  50. 1:48c'est déjà présent au niveau du modèle
  51. 1:50si je viens ici au niveau de la joue on
  52. 1:52peut voir que si j'essaye de faire un
  53. 1:54titre
  54. 1:55vraiment trop long
  55. 1:58et là vous voyez je ne peux plus saisir
  56. 1:59donc je suis bien 32 caractères maximum
  57. 2:01et même si on essaye de détourner le
  58. 2:03système comme vous avez montré
  59. 2:05précédemment on va ici il est où il est
  60. 2:09là
  61. 2:13il est pas là
  62. 2:15ici
  63. 2:17comme par exemple 320 au maximum donc là
  64. 2:20on a de la marge on va pouvoir dépasser
  65. 2:25au niveau du formulaire ici j'essaye
  66. 2:27bien sûr de soumettre ce dernier on voit
  67. 2:30que c'est bien un par défaut comme défi
  68. 2:31dans le modèle et bien on a bien un
  69. 2:33message d'erreur qui nous indique que
  70. 2:35l'on peut pas en fait dépasser et bien
  71. 2:36ce qui a été défini au niveau du modèle
  72. 2:38donc on a une sécurité à ce niveau là
  73. 2:40qui ne peut pas être contournée par
  74. 2:41l'utilisateur au niveau du formulaire il
  75. 2:44y a pas de problème tout est géré il n'y
  76. 2:45a pas de souci et on est sûr en fait
  77. 2:47d'avoir une garantie en fait sur
  78. 2:49l'intégrité des données sur côté correct
  79. 2:52en tout cas des données qu'on va vouloir
  80. 2:53faire saisir à l'utilisateur
  81. 2:56ce qui va être intéressant c'est de voir
  82. 2:58qu'on va pouvoir changer tout ça les
  83. 3:00données quand vous allez saisir en fait
  84. 3:01le formulaire il faut qu'elle soit
  85. 3:02nettoyée c'est le terme qui est utilisé
  86. 3:04ici au niveau de Django une fois que
  87. 3:06toutes les données du formulaire sont
  88. 3:07nettoyées elles se la valide si vous
  89. 3:10voulez le formulaire et on peut ensuite
  90. 3:11bien procéder aux différentes
  91. 3:12traitements et c'est ce que nous avions
  92. 3:14fait notamment au niveau de la vue donc
  93. 3:15on n'a pas être simplement la méthode is
  94. 3:17valide s'embête pas à ce niveau là juste
  95. 3:19une méthode et ceci normalement ne doit
  96. 3:22retourner ou dedans en tout cas
  97. 3:23déclencher aucune exception aucune
  98. 3:24erreur et dans ce cas précis s'il n'y a
  99. 3:27aucune erreur de déclencher c'est que
  100. 3:29toutes les données ont bien été
  101. 3:29nettoyées toutes les données a été
  102. 3:31validées et dans ce cas là on entretient
  103. 3:32dans notre condition et on peut
  104. 3:34effectuer le traitement que l'on veut il
  105. 3:35y a pas de problème donc ça c'est la
  106. 3:37partie on avait vu principalement en
  107. 3:39tout cas ça fonctionnera très souvent
  108. 3:40comme ça puisque vous allez encore une
  109. 3:42fois définir des règles principalement
  110. 3:43au niveau des modèles voir au niveau du
  111. 3:45formulaire et ça va couvrir en tout cas
  112. 3:47énormément de ce cas et de scénarios en
  113. 3:49tout cas possible voilà donc lorsque
  114. 3:51vous appelez la méthode is valide on a
  115. 3:53le nettoyage des données qui est
  116. 3:54effectué et à partir de là on on peut
  117. 3:56procéder au traitement que l'on veut
  118. 3:57donc ça on peut le voir alors on a
  119. 4:00d'autres méthodes on pourrait également
  120. 4:01faire directement accès à une attribut
  121. 4:04il y a un attribut d'erreur en fait pour
  122. 4:05le au niveau du formulaire on a même
  123. 4:07d'autres méthodes sont utilisées mais
  124. 4:09celle-là pour le coup est vraiment la
  125. 4:11plus pratique par rapport à la
  126. 4:12validation de nos formulaires et nous on
  127. 4:14va aller un petit peu plus loin parce
  128. 4:15qu'on va voir un petit peu ce qui se
  129. 4:16passe déjà on écrivant nos propres
  130. 4:18règles de validation et en voyant bah
  131. 4:20justement dans Qu'est-ce qui en fait
  132. 4:22génère une erreur lorsqu'on veut saisir
  133. 4:24quelque chose qu'en fait nous avons une
  134. 4:25exception avec un message d'erreur pour
  135. 4:27informer l'utilisateur en tout cas du
  136. 4:29pourquoi de l'erreur et de voir un petit
  137. 4:30peu ce qu'on peut faire avec tout ça on
  138. 4:32va déjà appliquer l'exemple avec
  139. 4:34finalement le personnaliser si vous
  140. 4:37voulez une règle de validation pour un
  141. 4:39champ en particulier on va regarder un
  142. 4:40petit peu tout ça pour voir ce que ça
  143. 4:42nous donne
  144. 4:43on va aller dans le formulaire ici
  145. 4:46et vous allez créer pour un champ en
  146. 4:48particulier donc je rappelle propre à
  147. 4:49son nom le nom du champ en question donc
  148. 4:51là on en a trois concernant le livre
  149. 4:52appliquer une règle de validation
  150. 4:54personnalisée pour ce dernier moi par
  151. 4:56exemple je vais le faire au niveau de la
  152. 4:58quantité alors encore une fois je peux
  153. 5:00pas forcément des exemples qui ont du
  154. 5:01sens je fais surtout des exemples qui
  155. 5:02sont très simples et qu'ensuite vous
  156. 5:04pourrez largement et facilement adopter
  157. 5:05adapté en tout cas à des exemples plus
  158. 5:08utiles plus concrets dans votre propre
  159. 5:09application je vais laisser ça ici je
  160. 5:12vais créer une méthode def et toutes les
  161. 5:15méthodes de validation personnalisées
  162. 5:17vont commencer par clean le tiret du bas
  163. 5:19donc underscore et ensuite le nom du
  164. 5:21champ que vous voulez en fait vérifier
  165. 5:23en tout cas faire nettoyer en
  166. 5:24particulier donc nous c'est celui-ci
  167. 5:26pour être sûr voilà un petit
  168. 5:28copier-coller comme ça il y a pas de
  169. 5:30problème nous sommes cette fois-ci dans
  170. 5:31cette méthode donc de la classe bookford
  171. 5:34qui est propre au formulaire concernant
  172. 5:36les livres pour pouvoir effectuer une
  173. 5:38validation autre en tout cas que celle
  174. 5:40qui est effectuée par défaut par rapport
  175. 5:42aux règles encore une fois définies au
  176. 5:43niveau du modèle donc notamment ici et
  177. 5:46pour l'auteur parce que l'auteur et vous
  178. 5:48avez vu rattaché à un livre dans tous
  179. 5:49les cas
  180. 5:50ici on va avoir besoin déjà de récupérer
  181. 5:52l'information on passe généralement par
  182. 5:55un dictionnaire il y a toutes les
  183. 5:56informations transit à un dictionnaire
  184. 5:58et on peut récupérer ça dans une
  185. 5:59variable ce sera surtout va de réécrire
  186. 6:01à chaque fois toute l'intitulé du
  187. 6:03dictionnaire ça part évidemment du
  188. 6:06formulaire en question et nous avons un
  189. 6:08dictionnaire qui s'appelle clean donc
  190. 6:09attention prétérit data et là vous allez
  191. 6:13indiquer bien le nom du champ puisque
  192. 6:15ici ça ne change pas comme ça nous
  193. 6:17récupérons ça dans cette variable et ce
  194. 6:18sera plus pratique à manipuler
  195. 6:19maintenant vous avez cette quantité vous
  196. 6:22pouvez faire tout un tas de choses
  197. 6:23dessus vous pouvez vérifier vous pouvez
  198. 6:25inclure une règle précisément ici par
  199. 6:27exemple on va faire une règle un peu
  200. 6:28particulière encore une fois qu'il y a
  201. 6:30pas beaucoup de sens mais c'est pour
  202. 6:31voir un petit peu comment tout ça
  203. 6:32fonctionne en disant que si la quantité
  204. 6:34est inférieure strictement ou égal à 0
  205. 6:38ou que la quantité est supérieure à 100
  206. 6:42par exemple pour indiquer que le livre
  207. 6:44doit être en fait on doit on doit
  208. 6:45ajouter quand on ajoute un livre on doit
  209. 6:47ajouter une quantité entre 1 et 100 pas
  210. 6:49moins et pas plus et bien dans ce cas là
  211. 6:51donc là si on est effectivement moins de
  212. 6:530 ou plus de 100 on va déclencher une
  213. 6:57exception et pas n'importe quelle
  214. 6:58exception ce que ça part évidemment des
  215. 7:00formulaires et c'est une un type bien
  216. 7:02précis qui est validation
  217. 7:03error et là vous mettez votre message
  218. 7:05d'erreur par exemple
  219. 7:07engométait ça vous doit la quantité ne
  220. 7:10devrait pas donc généralement c'est du
  221. 7:11conditionnel la quantité
  222. 7:14d'ajout enfin la quantité du livre
  223. 7:18doit être comprise
  224. 7:20entre 1 et 100 comme ceci et bien
  225. 7:25évidemment s'il y a pas de problème
  226. 7:27on retourne c'est important ce que ça
  227. 7:29pourrait être éventuellement utiliser
  228. 7:30pour d'autres parties d'applications et
  229. 7:32de la validation on retourne bien sûr
  230. 7:33cette quantité donc nettoyer d'accord
  231. 7:35donc là ça c'est nettoyage qui est fait
  232. 7:37de manière par défaut d'accord générique
  233. 7:40donc on récupère ceci et ensuite nous on
  234. 7:42applique une règle supplémentaire vous
  235. 7:44voyez en temps normal il ferait juste ça
  236. 7:45au niveau de nettoyage qu'on faisait
  237. 7:47jusqu'à présent pour va défaire valider
  238. 7:48le formulaire là on récupère sa donnée
  239. 7:50qui a déjà été faite en amont et nous on
  240. 7:53applique cette règle là on vérifie on
  241. 7:55effectue en tout cas le test de cette
  242. 7:57expression pour ajouter cette
  243. 7:58expérimenté qui permettra de valider ou
  244. 8:00non et bien ce champ du formulaire une
  245. 8:03fois qu'on a ça on a en fait un petit
  246. 8:05peu toute l'information que l'on veut
  247. 8:07on va retourner là parce qu'il y a pas
  248. 8:08de modification à faire donc on va
  249. 8:09directement actualiser la page ici et on
  250. 8:12va tenter d'ajouter un livre
  251. 8:18la dernière fois
  252. 8:20Akira je vais mettre par exemple 0 alors
  253. 8:23là on verra qu'on a des un peu
  254. 8:24particulier pour zéro et là la quantité
  255. 8:26du livre doit être comprise entre 1 et
  256. 8:28100 d'accord si je mets bien sûr sans 1
  257. 8:31ça ne marche pas ici je mets 100 donc ça
  258. 8:34fait un sacré stock là évidemment ça a
  259. 8:36été ajouté sans problème quand j'étais
  260. 8:38sans et je peux vérifier si sur la fiche
  261. 8:40ça correspond bien donc il peut être
  262. 8:42problème on a pu ajouter ce livre nous
  263. 8:44avons ajouté une nouvelle règle de
  264. 8:45validation au niveau du formulaire vous
  265. 8:47voyez qu'à nouveau on n'a pas touché au
  266. 8:48modèle puisque ça ce sont les toutes les
  267. 8:50définitions de base on y touche très
  268. 8:52très rarement on le fait une fois pour
  269. 8:54toutes et à moins de faire tout un gros
  270. 8:55changement par la suite
  271. 8:57ultérieurement mais attention à ça on
  272. 8:59modifie à ce moment là au niveau du
  273. 9:01modèle mais sinon une fois qu'il est
  274. 9:02fait il est fait au niveau des vues
  275. 9:04c'est de l'affichage donc là ça
  276. 9:05changeait pas donc c'est vraiment au
  277. 9:06niveau du formulaire qu'on change qu'on
  278. 9:08ajoute éventuellement des validations
  279. 9:10personnalisées propre à un champ ici en
  280. 9:12particulier si je voulais faire une
  281. 9:14validation en plus sur le champitole
  282. 9:16vous faites une une méthode clean
  283. 9:18underscore title vous avez compris le
  284. 9:19principe et après ici vous faites tous
  285. 9:21les tests que vous voulez rappelez-vous
  286. 9:22c'est du Pyton vous avez appris à
  287. 9:25programmer dans ce langage et ensuite
  288. 9:26surtout vous n'oubliez pas de retourner
  289. 9:27voilà donc ça c'est on va dire le strict
  290. 9:29minimum vous récupérez le champ en
  291. 9:31question depuis le dictionnaire clean
  292. 9:33data et vous le retournez à la fin s'il
  293. 9:34y a pas eu de problème il faut qu'un
  294. 9:36moment donné si ça n'a pas validé vos
  295. 9:38tests et bien que ça déclenche une
  296. 9:41exception forme point validation
  297. 9:43error c'est important d'avoir son
  298. 9:45fonctionnement là donc ça c'est ta voix
  299. 9:47voilà donc ça c'est le plus simple vous
  300. 9:50avez vu c'est pas compliqué c'est
  301. 9:52vraiment le truc le plus pratique si
  302. 9:53vous avez vraiment un champ en
  303. 9:54particulier vous voulez faire un test
  304. 9:55supplémentaire vous pouvez procéder
  305. 9:57comme ça il y a pas beaucoup de codes à
  306. 9:58écrire en plus et ça suffira largement
  307. 10:01maintenant comme je le disais pour la
  308. 10:02deuxième et dernière partie de cette
  309. 10:04vidéo vous pourriez avoir des champs qui
  310. 10:06sont reliés ensemble par exemple alors
  311. 10:08moi je vais faire une règle un peu
  312. 10:09bizarre dire par exemple dans le cas où
  313. 10:11le livre commencerait par Dragon Ball et
  314. 10:14de dire que un livre qui commence par
  315. 10:15Dragon Ball donc encore une fois ça a
  316. 10:17pas de sens un an le réel si on faisait
  317. 10:18ça en vrai on ne doit pas avoir une
  318. 10:20quantité inférieure à 10 par exemple
  319. 10:21voilà on estime donc si on ajoute ce
  320. 10:23livre les gens aiment tellement il faut
  321. 10:24au moins qu'on ajoute un stock de
  322. 10:25minimum 10 litres parce que si on en
  323. 10:27ajoute moins on va très vite être en
  324. 10:28rupture de stock et les gens vont pas
  325. 10:30être contents vous savez comment ça se
  326. 10:31passe ce serait Twitter tout ça bref
  327. 10:33c'est un peu compliqué donc on va
  328. 10:36partir du principe qui a une relation
  329. 10:37directe entre le titre du livre et la
  330. 10:40quantité pour dire voilà si c'est un
  331. 10:41livre Dragon Ball peu importe lequel on
  332. 10:44tourne ajouter au minimum 10 et pas
  333. 10:46moins donc on peut on a une relation
  334. 10:48entre les deux si vous avez bien compris
  335. 10:49jusqu'à présent vous avez vu quand on
  336. 10:51utilise ici une méthode qu'on définit
  337. 10:52une méthode c'est propre à un champ en
  338. 10:54particulier si là je veux travailler
  339. 10:55après avec directement par exemple le
  340. 10:58titre c'est pas pratique parce que ici
  341. 11:00c'est censé faire la validation de la
  342. 11:01quantité pas autre chose c'est indiqué
  343. 11:03dans le nom sinon on aurait mélangerait
  344. 11:05tout et n'importe quoi et on aurait à
  345. 11:07coup sûr des erreurs je pourrais
  346. 11:08éventuellement faire à nouveau une
  347. 11:10méthode ici le problème c'est qu'on se
  348. 11:12retrouve avec le même souci on va
  349. 11:14pouvoir effectivement contrôler le titre
  350. 11:15en question mais pas forcément la
  351. 11:17quantité par rapport au titre vous voyez
  352. 11:18ou alors vous allez avoir des doublons
  353. 11:20donc ça va rajouter beaucoup beaucoup de
  354. 11:22côtes pour rien
  355. 11:23dans ce cas là ce qu'on peut faire alors
  356. 11:25je vais mettre en commentaire même si on
  357. 11:27pourra le changer après le remettre par
  358. 11:29la suite ce qu'on va voir que ça peut
  359. 11:30rester sans problème je peux utiliser
  360. 11:32une autre méthode un peu plus complète
  361. 11:34par contre il m'a mis
  362. 11:37quand même mis ça comme ça c'est bon
  363. 11:39c'est que maille tout décalé mais non
  364. 11:42d'utiliser la méthode clean voilà
  365. 11:48donc celle-ci est normalement appelé
  366. 11:49cette méthode parce qu'en fait on est en
  367. 11:51train de la surcharger il y a une
  368. 11:52méthode qui existe de base pour ça comme
  369. 11:54pour chacune donc on réécrit en fait une
  370. 11:56autre une autre méthode elle est appelée
  371. 11:59quand justement toutes les méthodes
  372. 12:00comme ça qui peuvent exister ont été
  373. 12:02validés évidemment de toute façon s'il y
  374. 12:04a une erreur déclenchée on va pas aller
  375. 12:05bien loin donc ça valide en premier lieu
  376. 12:08toutes les méthodes là pour des champs
  377. 12:09en particulier et ça si vous voulez
  378. 12:10c'est un peu la validation personnalisée
  379. 12:12mais globale plus globale plus générale
  380. 12:14et d'ailleurs si on a une erreur qui est
  381. 12:16déclenchée ici le message d'erreur sera
  382. 12:18affiché au niveau du champ particulier
  383. 12:20là où on aura quelque chose qui est
  384. 12:21propre au formulaire de manière générale
  385. 12:23voyez ça va pas concerné en fait une
  386. 12:25erreur propre à un champ seulement mais
  387. 12:27plus l'ensemble du formulaire même si on
  388. 12:29peut on pourrait tricher entre
  389. 12:30guillemets en mettant le message
  390. 12:32d'erreur en l'affichant un petit peu où
  391. 12:33on veut au niveau d'un champ en
  392. 12:35particulier mais par défaut le
  393. 12:36comportement sera de l'afficher au
  394. 12:37niveau global du formulaire
  395. 12:40ici on va pouvoir contrôler pas mal de
  396. 12:41choses alors là le problème enfin le
  397. 12:43problème ce qu'il faut ce qu'il faut
  398. 12:45savoir ici c'est que si éventuellement
  399. 12:46le champ n'existe pas qu'on a une valeur
  400. 12:48par exemple qui a pas été validée mais
  401. 12:50ici on va en fait avoir une erreur qui
  402. 12:52va être déclenchée ça va poser problème
  403. 12:53on aura une qui est erreur en fait et on
  404. 12:55aura donc pas récupéré ce qu'on voulait
  405. 12:56puisque le champ n'existera pas
  406. 12:59l'information n'existera pas dans ce
  407. 13:00dictionnaire ici comme on ne veut pas ça
  408. 13:02on veut pas ce genre de problème en tout
  409. 13:03cas au niveau de du nettoyage complet on
  410. 13:06va plutôt utiliser la méthode GET un des
  411. 13:08dictionnaire donc là je vous ramène au
  412. 13:10cours au cours pailleton et la vidéo
  413. 13:13notamment concernant les dictionnaires
  414. 13:14puisqu'on a vu tout ça évidemment cette
  415. 13:16vidéo
  416. 13:17et on va récupérer le champ en question
  417. 13:18qu'on veut donc ici taille je vais faire
  418. 13:23self ça ça ne change pas clean data mais
  419. 13:27ici on va utiliser get l'avantage de Get
  420. 13:29c'est que si le champ en question donc
  421. 13:31la valeur dans la clé spécifique
  422. 13:33n'existe pas ça retournera non et on
  423. 13:35aura donc pas d'erreur déclenchées donc
  424. 13:37ça va exactement très très bien avec ce
  425. 13:39qu'on voulait je fais ça comme ça
  426. 13:42une fois la quantité parce que là on
  427. 13:43travaille avec les deux données
  428. 13:47et voilà on récupère les deux s'il y en
  429. 13:50a une qui existe pas je vous dis ça
  430. 13:51retourne alors pourquoi je dis que ça
  431. 13:52peut retourner non par exemple le cas de
  432. 13:54la quantité notamment en mettant 0 vous
  433. 13:56savez qu'en informatique en par exemple
  434. 13:57on a un nombre donc une valeur numérique
  435. 13:58qui vaut 0 pourrait considérer en fait
  436. 14:00que il y a rien d'accord qui ne retourne
  437. 14:02rien parce qu'il part du principe il
  438. 14:03faut minimum 1 ou alors une valeur
  439. 14:05négative donc le zéro peut avoir un
  440. 14:07comportement des fois un peu particulier
  441. 14:08quand on quand on écrit des programmes
  442. 14:10des applications et pour être simplement
  443. 14:11à ne pas mettre la quantité dans le
  444. 14:15dictionnaire si vous mettiez une
  445. 14:16quantité de 0 alors que l'utilisateur
  446. 14:18peut au niveau du formulaire écrire 0 et
  447. 14:20ici alors l'ajout d'un livre c'est pas
  448. 14:21parce que c'est un par défaut qui peut
  449. 14:22pas faire ceci et ça pourrait
  450. 14:24éventuellement déclencher les erreurs
  451. 14:25qu'on ne veut pas parce qu'elles
  452. 14:26n'aurait pas de sens au niveau notre
  453. 14:27application je récupère le titre s'il y
  454. 14:30en a un je récupère une quantité s'il y
  455. 14:32en a une et ensuite on peut procéder à
  456. 14:34la validation alors là le plus simple
  457. 14:36c'est de vérifier que tout ça existe
  458. 14:38donc iftait
  459. 14:43voilà c'est le minimum et maintenant bah
  460. 14:46vous faites toutes vos validations
  461. 14:47d'accord classique donc là évidemment
  462. 14:51j'ai oublié mais à la fin on va le faire
  463. 14:52déjà avant un palouis que sinon en
  464. 14:54parlant je vais l'oublier et ça va être
  465. 14:55dramatique voilà on retourne clean data
  466. 14:58cette fois-ci d'accord donc tout à la
  467. 15:00fin et ici dans la condition bah vous
  468. 15:03faites vos différents tests donc moi par
  469. 15:04exemple quand je disais je vais faire un
  470. 15:06test comme ceci en disant
  471. 15:10si le titre commence par
  472. 15:14Dragon Ball attention on respecte bien
  473. 15:16ce que moi je mets une majuscule au
  474. 15:17début de chaque chose voilà comme ceci
  475. 15:19et que la quantité
  476. 15:22est strictement inférieure à 10 dans ce
  477. 15:25cas là
  478. 15:27je déclenche
  479. 15:29une erreur
  480. 15:32en disant
  481. 15:34minimum quand je mette un message plus
  482. 15:36court
  483. 15:38pour un livre Dragon Ball encore une
  484. 15:41fois quand j'étais Dragon Ball ça peut
  485. 15:42être Dragon Ball Z Dragon Ball super etc
  486. 15:44j'ai été peu importe pour ça que ça
  487. 15:46prend bien le Start Wiz par rapport à
  488. 15:48cette chaîne ça commence le nom de le
  489. 15:49titre du manga commence par ces deux
  490. 15:51termes il peut y en avoir d'autres à la
  491. 15:53suite bien évidemment donc comme je vous
  492. 15:55l'ai dit un test qui après pas beaucoup
  493. 15:56de sens c'est juste pour l'exemple pour
  494. 15:58avoir quelque chose qui est très simple
  495. 15:59bien sûr après vous vous testez ce que
  496. 16:01vous voulez si bien sûr il y a besoin de
  497. 16:02le faire sinon vous pouvez vous
  498. 16:03contenter du de la validation par défaut
  499. 16:05qui déjà encore une fois traite beaucoup
  500. 16:07beaucoup de choses par rapport à comment
  501. 16:09vous avez défini les règles au niveau du
  502. 16:11modèle donc là on a quelque chose de
  503. 16:13beaucoup plus propre d'accord pour cette
  504. 16:15partie là et on va pouvoir et bien
  505. 16:17procéder un petit peu à ça on va
  506. 16:20actualiser je vais faire ceci
  507. 17:05[Musique]
  508. 17:13[Musique]
  509. 17:17si je mets 10 c'est bon d'accord alors
  510. 17:20par contre il m'a mis clean data ah oui
  511. 17:22je l'ai peut-être pas
  512. 17:25j'ai fait des bêtises on refait oui
  513. 17:29voilà donc on amène Dragon Ball super
  514. 17:32Akira Toriyama et pour montrer que c'est
  515. 17:34propre cadre Dragon Ball donc si
  516. 17:35j'ajoutais n'importe quoi je mets
  517. 17:37vraiment un nom qui existe pas
  518. 17:39non inconnu voilà là par exemple ça
  519. 17:42marche voyez donc ça s'applique bien ça
  520. 17:45c'est normal c'est de la programmation
  521. 17:46donc le titre commençait pas par Dragon
  522. 17:48Ball donc là la quantité peut être
  523. 17:50inférieure à 10 il y a pas de problème
  524. 17:51tant que ça reste une quantité et bien
  525. 17:53par exemple bon qui ne serait pas ici
  526. 17:55inférieur à 0 ou autre sauf que j'ai
  527. 17:57commenté cette partie donc on va la
  528. 17:59décommenter tout le principe on va
  529. 18:01retirer ça on va retirer ça on va
  530. 18:04retirer celui-ci et on va remettre cette
  531. 18:07règle là qu'il y avait
  532. 18:09et là et bien les deux vont s'appliquer
  533. 18:11donc je peux faire ça
  534. 18:15tire Dragon Ball
  535. 18:18GT je l'ai enlevé
  536. 18:21on est d'accord si j'essaie de faire ça
  537. 18:22l'erreur globale effectivement il faut
  538. 18:24une info minimum 10 donc je peux prendre
  539. 18:269 8 etc même problème
  540. 18:29et par contre si je dépasse les 100
  541. 18:33et bien hop c'est la quantité qui est
  542. 18:35pas bonne donc il a bien traité
  543. 18:37également la validation personnalisée
  544. 18:39propre à la quantité en particulier donc
  545. 18:42vous pouvez cumuler vous pouvez avoir
  546. 18:43des vérifications à faire sur un champ
  547. 18:45de manière isolée c'est à dire que c'est
  548. 18:47indépendant les il n'y a pas besoin de
  549. 18:49tester sur un autre champ et s'il y a
  550. 18:51des champs qui sont en relation avec
  551. 18:52vous devez tester des choses entre eux
  552. 18:54d'accord vous le faites dans une seule
  553. 18:57et unique méthode clean là vous faites
  554. 18:58toutes vos vérifications comme je dis ça
  555. 19:00passera donc il va d'abord effectuer en
  556. 19:02fait les vérifications des méthodes
  557. 19:03clean underscore quelque chose un autre
  558. 19:05champ et à la fin une fois que tout est
  559. 19:07validé il passe à la méthode clean qui
  560. 19:10sera faite à la fin et après ça suit le
  561. 19:12bouton de processus de validation comme
  562. 19:13on a vu dans la première partie en tout
  563. 19:15cas au niveau des formules donc vraiment
  564. 19:17pas compliqué
  565. 19:18et ici on va jamais de sens cette
  566. 19:20fois-ci parce que c'est le maximum et ça
  567. 19:22a bien validé sans problème donc tout
  568. 19:24fonctionne comme prévu par rapport aux
  569. 19:26différentes règles de validation que
  570. 19:27nous avons effectué voilà qui termine et
  571. 19:31bien cette deuxième partie sur les
  572. 19:32formulaires vous avez vu que c'était pas
  573. 19:33très compliqué ça va rajouter grand
  574. 19:35chose de nouveau on a passé quand même
  575. 19:37plus de temps sur la première partie
  576. 19:38parce que surtout aussi parce que je
  577. 19:39voulais vous montrer un peu les
  578. 19:40différents types de champs qu'on pouvait
  579. 19:41écrire et encore on n'a pas vu la
  580. 19:43totalité des champs en tout cas des
  581. 19:45codes possibles avec Django pour écrire
  582. 19:48des champs de formulaire on avait plein
  583. 19:49de manières aussi de tourner tourner les
  584. 19:51choses et personnaliser un petit peu les
  585. 19:53choses ensuite on a fait une validation
  586. 19:54propre au modèle avec un modèle et là en
  587. 19:57cette seconde partie on s'est compté de
  588. 19:58voir un petit peu contenter de faire un
  589. 20:00peu la validation des données mais de
  590. 20:02manière personnalisée si vous voulez
  591. 20:03l'ajouter encore une fois et pour
  592. 20:05terminer je rappelle ce n'est pas
  593. 20:07obligatoire c'est toujours la même chose
  594. 20:08si vous avez défini ici des règles
  595. 20:10suffisantes au niveau des modèles
  596. 20:11éventuellement au niveau de la création
  597. 20:13des champs du formulaire ça suffira la
  598. 20:16saisie vraiment le système Jung n'est
  599. 20:19pas capable en fait de faire des
  600. 20:20vérifications par exemple ça le
  601. 20:22validateur par défaut ne peut pas savoir
  602. 20:24que je veux une quantité entre 1 et 100
  603. 20:26pour un livre c'est impossible il peut
  604. 20:27pas le deviner c'est un besoin que je
  605. 20:29veux en particulier spécifique c'est un
  606. 20:31besoin arbitraire donc dans ce cas là
  607. 20:32vous avez forcément besoin d'écrire un
  608. 20:34validateur personnalisé pour le faire et
  609. 20:37ainsi de suite pareil ça c'est une règle
  610. 20:38qui est bien spécifique que Chango ne
  611. 20:40peut pas effectuer de manière
  612. 20:41automatique peut pas deviner donc c'est
  613. 20:43vraiment propre à ce cas si vous n'avez
  614. 20:45pas de besoin d'effectuer des tests ou
  615. 20:47d'avoir des des vérifications aussi
  616. 20:49spécifiques que ça ou que ça et que vous
  617. 20:51pouvez vous contenter de choses qu'on
  618. 20:53fait simplement programmation la
  619. 20:55longueur maximale le fait que ce soit
  620. 20:56unique le fait que ce soit requis ce
  621. 20:58genre de choses et bien pas de problème
  622. 21:00vous pouvez vous contenter de ce que
  623. 21:01vous avez défini dans les modèles de ce
  624. 21:02que vous définissez dans les formulaires
  625. 21:04et passer par une validation classique
  626. 21:06par défaut comme on l'a fait dans la
  627. 21:08première partie concernant les
  628. 21:09formulaires et ça vous avez vu que ça
  629. 21:11marchait très bien aussi donc ça c'est
  630. 21:13vraiment un petit plus si vous voulez
  631. 21:14personnaliser davantage pour des règles
  632. 21:15bien spécifiques
  633. 21:17je vous laisse avec cette partie pour la
  634. 21:20suite mais on va passer à d'autres
  635. 21:21petites choses on arrive quand même très
  636. 21:22très rapidement à la fin du coup je vous
  637. 21:24dis surtout pas mal de choses qu'on
  638. 21:26pourrait éventuellement aborder dans des
  639. 21:27tutos si on veut compléter mais au
  640. 21:29niveau du courant lui-même on a quand
  641. 21:30même quasiment fait le tour un petit peu
  642. 21:31de tout ce que je voulais aborder avec
  643. 21:33vous donc là il vous manquait surtout
  644. 21:35cette grosse partie ce que les
  645. 21:36formulaires sont quand même on va dire
  646. 21:38une partie très importante et un peu
  647. 21:40essentielle quand même quand on fait des
  648. 21:41applications notamment des sites web on
  649. 21:42a du mal quand même à faire sens qu'on
  650. 21:44est très vite amené à demander des
  651. 21:45données à l'utilisateur sauf si on
  652. 21:47produit simplement un site statique on
  653. 21:49distribue de l'information et sans plus
  654. 21:50mais là maintenant vous avez vu cette
  655. 21:53deuxième partie sur les formulaires vous
  656. 21:54avez via par quelques petits détails
  657. 21:56mais vous pourriez créer normalement une
  658. 21:57application un site web assez complet
  659. 21:59avec quasiment toutes les
  660. 22:00fonctionnalités qui vous faut même si
  661. 22:02nous manque une fonctionnalité quand
  662. 22:03même en particulier qui est importante
  663. 22:04aussi et qu'on sur laquelle on va
  664. 22:07s'attarder pour la suite qui est
  665. 22:08l'authentification tout ce qui est lié
  666. 22:09justement aux utilisateurs les
  667. 22:10permissions ça c'est un peu la grosse
  668. 22:12partie qui nous manque finalement pour
  669. 22:14avoir quelque chose de complet par
  670. 22:16rapport à ça je vous dis à bientôt pour
  671. 22:17la suite on se retrouvera bien pour une
  672. 22:19prochaine séance pour parler justement
  673. 22:20des utilisateurs l'authentification des
  674. 22:22permissions tout ça tout ça à bientôt
  675. 22:25[Musique]

About this transcript

This page contains the full transcript of Django #12 - formulaires (2/2) by EvoluNoob, generated from the public captions YouTube serves with the video. The transcript has 4,563 words across 675 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.