Session du 09 octobre 2025 à 21h00
Développement Web & Frameworks
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Session de mentorat Django
On parlera des formset_factory
00:00:00 :Pour ceux qui sont ici, est-ce qu'il y en a qui ont déjà utilisé les models Formset avec Django ?C'est normal, ce n'est pas un truc hyper connu et c'est un peu déroutant au début de l'utilisation mais c'est hyper cool.
00:00:36 :Donc là j'ai lancé un projet Django, j'ai pris de l'avance, j'ai que la base du projet.Super, c'est bon, j'ai lancé et je pense qu'il y a Thomas qui va y en rendre après, c'est fort possible.
00:01:13 :Je vais laisser ça ouvert au pire.Donc le projet Django, j'ai juste initialisé, il y en a qui n'ont jamais fait Django ici ou pas ?
00:01:25 :Moi j'ai attaqué vite fait.J'ai fait un projet pour une autre formation où justement on me demandait de faire un site avec Django.C'est pour ça justement que ça m'a bien plu, c'est pour créer un site internet de jeux, de vidéos, de films.
00:01:52 :Django c'est cool, après il y a deux grosses façons d'utiliser, c'est soit en mode framework, en API je veux dire.Donc on a le framework en Django Ninja qui est cool.
00:02:14 :J'étais le seul en back d'ailleurs.Et il y a la façon d'utiliser où on fait vraiment le MVP.On en parlait tout à l'heure d'ailleurs avec Antoine.
00:02:23 :Antoine tu faisais un MVP d'ailleurs, tu faisais les modèles vue.MVP donc vous avez carrément tout intégré, vous avez vraiment les templates.Alors du coup Antoine c'est ça, tu faisais un MVP toi non ?
00:02:37 :Oui c'est ça.Tu n'avais pas de vue API entre guillemets, c'était vue avec template.Donc là j'ai initialisé un projet, pour l'instant il n'y a rien, j'ai que mon fichier de manage qui est créé avec et le dossier de projet.
00:02:52 :C'est tout.J'ai mon environnement virtuel qui est activé, je regarde s'il me l'a bien activé, c'est bon parce que des fois je passe à bug.
00:03:06 :Donc là on va créer l'application.T'es sur PC toi ?Sur Mac.D'accord, t'es en Python ? Pas Python 3 ?Python 3 là ouais.
00:03:24 :Attends t'écris pas Python 3 ?Non non non.D'accord ok.Alors t'es sur quoi toi ?Moi je suis sur Mac et je suis sur Big OS.
00:03:37 :Et moi il me demande de le préciser à chaque fois.Parce que sinon si je fais Python en virtuel ou quoi que ce soit en ventre, il met Python 2.
00:03:50 :Bon bah non là je vais lui demander, je n'ai pas fait d'erreur, c'est bon tac.Hop tu l'as écrit nickel sans problème, on va dans l'application.
00:03:58 :D'accord ok.Bon après moi je ne sais plus, j'en ai parlé l'autre fois je crois, mais tac, ça on s'en fout.On fera plus de temps s'il faut, tac.
00:04:13 :On va grossir un peu plus.Moi j'utilise vraiment le PyEnv.Je ne sais pas si Yann a expliqué ça ici, mais moi je prends ça du coup.
00:04:25 :D'accord.Je gère mes environnements avec ça.Donc j'ai mon fichier racine du ZSH et du coup ça me charge directement ça.Donc j'utilise vraiment les fichiers PyEnv.
00:04:37 :Donc je peux switcher de version, je vais dire par exemple PyEnv global,je vais dire prends moi la 3.10.15 tac et puis je vais passer dessus.
00:04:46 :Donc tous les environnements virtuels que je vais créer seront en 3.10.15 et ainsi de suite.Voilà donc là on voit que j'ai une étoile qui s'appelle la 3.13.
00:04:53 :C'est vrai que ça se rend compte à chaque fois.Voilà pour ceux que ça intéresse c'est PyEnv.Tac et moi je l'installe avec Homebrew sur Mac.
00:05:07 :Oula je ne sais pas, elle n'a pas envie de charger Github en plus, cool.Je ne sais pas si Github est mort ou...Ouais marrant.
00:05:24 :Vous m'entendez, vous avez de la connexion là vous ? Il n'y a pas de problème ?Oui il n'y a pas de soucis.C'est bizarre.
00:05:29 :Non c'est bon.Il ne charge pas.Ok j'ai un problème de connexion je crois aussi, j'ai des latences assez horribles.On me dirait bien où je vais relancer mon...
00:05:52 :Attendez je vais relancer parce que j'ai un truc en même temps qui se passe chez moi là.Tac.Ça va dans deux minutes.Alors, qu'est-ce qui se passe ?
00:06:03 :J'ai l'impression que c'est en terminale.Désolé vous m'entendez, c'est toujours cool.Si je fais...Hop là.Ok.Ok, ça va revenir.Ok du coup.Tac.
00:06:38 :On va...C'est bon.Ça revient, ok.Bah écoutez, je ne sais pas ce qu'il se passe là avec mon...Je ne sais pas si il y en a de chez moi.
00:06:47 :Bon.Tac.Allez.Donc oui je disais, ce soir du coup on va voir ce qui est...Ce qu'on appelle les Formsets.Hop.Pour ça, vous avez par exemple en fait des projets de Django où vous allez avoir...
00:07:04 :Comment dire ?Des modèles par exemple.Imaginez vous avez un panier et dans un panier vous avez des articles dedans.Et vous voulez afficher sur une page web par exemple tous vos articles du paniermais sous forme d'un formulaire.
00:07:22 :Donc en fait on a ce qui s'appelle des Formsets sur là, des modèles Formsets en faitoù vous pouvez afficher tous les articles d'un panier en question par exemple sur une page webet avec par exemple un bouton en dessous de chaque article, des lettres pour supprimer l'article.
00:07:34 :Voilà.Donc ça c'est possible.Donc là j'allais...Django.Tac.On va reprendre sinon...Ce que j'ai fait sur un autre projet.Je réfléchis un petit peu comment on va le faire.
00:07:52 :Est-ce que le mieux c'est de passer par un Formset basique ou un Inline ?Est-ce que je reprends ce projet là un petit peu sinon ?
00:08:05 :Tac tac.Ok.Donc.Je vais ouvrir Haddock avec moi en même temps.Django.Hop.Formset.Si vous voulez partager ce sera plus simple.Tac.Hop là.
00:08:26 :Donc Django les Formsets.Donc là on voit ici vous avez des...Comment dire ?Là imaginons un formulaire ici, l'article Form ici dans le modèle.
00:08:41 :Je vais grandir si vous voulez.Hop.Et ici lui il crée des articles Form directement.On va prendre un modèle Formset ce sera mieux.Modèle.
00:08:52 :C'est le modèle Formset Actory.Non je n'ai pas celui-là.Il n'y a pas dans la table ici.Je vous le montre dans quoi du coup.
00:09:00 :Ou sinon je vais carrément vous le faire directement.Ouais.Canorder.Form.On va prendre le modèle.Modèle.Formset.Actory.Django.Ouais ça ne sert à rien de page normalement.
00:09:18 :Je n'ai pas vu le modèle Formset c'est pour ça.Formset.Formset.Actory.Celui-là ça me va très bien aussi.On va partir de l'Haddock c'est mieux.
00:09:32 :Error message.Je vais peut-être partir Formset Actory.Non.Tac.Tac.Ça je m'en fiche.Ça je m'en fiche.Formset.Actory.Bah écoutez.J'ai le base Formset ici.
00:09:50 :C'est bizarre qu'ils ne le mettent pas dans l'inline.Et l'inline je ne l'ai même pas dans l'Haddock.Inline.Formset.Django.C'est bizarre je n'ai pas vu l'inline.
00:10:06 :Sinon on va commencer à coder.Ça me paraît bizarre quand même.Tac.Modèle.Formset.Form.Form.Modèle.Non.Ah voilà.Je vais l'avoir là-dedans du coup je pense.
00:10:26 :Modèle Formset.Ok nickel.Du coup on a ici.Ok.Donc on voit ici qu'on a.Donc tu mets quoi ?Donc là le modèle.Donc là c'est un exemple de modèle.
00:10:41 :C'est pas de hauteur.Et il vous sort aussi un Modèle Formset Factory.Donc là il va vous dire.Donc on va prendre le Modèle Formset Factory pour créer en fait un Formset.
00:10:53 :Et en fait on va envoyer directement le modèle qu'on veut utiliser.Et on va prendre les champs que l'on veut utiliser.Et ça on va le combiner en fait avec un Query Set ici.
00:11:06 :Un Query Set pour.Par exemple si on a imaginé que vous avez un panier en fait.Un panier utilisateur.Vous voulez pas afficher en fait tous les articles de tous les paniers des clients en fait.
00:11:24 :Donc vous n'allez afficher que les articles du panier.Du panier en fait.De votre panier par exemple.Alors par contre j'ai un problème de navigateur.
00:11:35 :Vous voyez bien en écran ou pas ?J'ai un souci sur mon Mac là c'est horrible.Ouais on voit bien.Alors attendez ça m'inquiète.Ça m'inquiète un peu.
00:11:43 :Je vais essayer avec un autre navigateur.Parce que moi j'ai un truc.Alors je sais pas si je suis le seul à avoir ça.Je pense que je suis le seul du coup.
00:11:51 :Je sais pas j'ai des ralentissements.C'est assez horrible.C'est normal que tu sois deux fois en mode présentation ?Ouais c'est une fois.Moi je te vois en deux fois.
00:12:10 :Alors attendez.Restez en salon je vais redémarrer mon Mac.Si ça vous dérange pas.Je suis désolé.Je vais redémarrer mon Mac.Je vais juste...
00:12:21 :Et je reviens dans le Meet juste après.Je reviens tout de suite.Laissez-moi 5 minutes je redémarre.Tout de suite.C'est bizarre ça.Hop je vais quitter tout.
00:12:35 :Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Je suis désolé.Ok.Ok.Ok.Ok.Ok.Ok.Ok.Je crois qu'on l'a perdu.
00:15:24 :C'est le temps de redémarrer, c'est toujours un peu long.Ouais directement sur un Mac c'est quand même assez rapide.Ouais mais après il faut cliquer sur les liens.
00:15:37 :Qu'est-ce qui a attaqué la formation Tosa ici ?Ok, ça va revenir, c'est bon.Vous m'entendez là ou pas ?Oui.Ouais je ne sais pas ce qui s'est passé.
00:16:05 :J'ai reçu un mail en plus des techniciens de chez Free.Je ne sais pas si ça a eu un rapport.Tac.J'ai le temps de relancer tout.
00:16:16 :Je pense que je vais le couper parce que ça me prend de la mémoire.Peut-être un petit peu quand même.Ok, ça c'est bon.Oui peut-être, je ne sais pas, il y a une intervention ce soir.
00:16:30 :Mais je ne sais pas si c'est là, ça me parait bizarre.Je ne sais pas si ça peut jouer.Tac, j'ai lancé mon terminal.Tac, c'était quoi que j'avais plus qu'à vendre ?
00:16:44 :Pour répondre à ta question Eva, moi je ne fais pas le Tosa.Moi je suis en fin de formation Tosa là.Et à ton niveau tu as commencé en tant que débutant-débutant ?
00:16:58 :En Python oui, en programmation non.J'ai déjà un titre RNCP en développement.D'accord, d'accord.Voilà.Ok, ça c'est bon.Et ça t'as pas trop galéré ?
00:17:20 :Pas du tout.La formation elle est cool, elle est accessible.Pédagogiquement il y a quand même des profs qui sont pertinents.Déjà les cours de Thibault sont super,et puis Gabriel il fait le job derrière pour assurer.
00:17:35 :Du coup ça se passe plutôt très bien en fait.C'est le fun.J'ai pas trop assuré ça pour l'instant.C'est ce qu'on appelle une peine technique du homac.
00:17:47 :Ça y est je suis repartie sur les petites bouteilles sur les Mac.Les Mac c'est très bien.On va pas commencer.Regarde Mac PC là.
00:17:55 :Déjà les PC ça tient même pas.Tu fais du design dessus, ton PC tu le fais cramer.Ouais.Je sais pas ce que j'ai eu là.
00:18:04 :J'avoue je sais pas ce que j'ai eu.Après je sais pas si c'est Chrome qui merdait, j'en sais rien.Après par contre sur Mac j'ai eu des soucis avec Chrome.
00:18:12 :Bon là il était mis à jour mais ce soir j'ai encore eu des problèmes.Bon, ça a l'air d'aller là en tout cas.Ça tient, on voit l'écran, je partage, c'est bon ?
00:18:19 :Yes.Ok.Solution quitter Chrome et Mac.Allez c'est reparti.C'est reparti.Attends.Putain mais ça recommence, c'est impossible, attendez.Qu'est-ce que c'est que ce délire encore ?
00:18:36 :Qu'est-ce que c'est que ce délire ?Je fais juste un test dans mon terminal.Hop.Ok.Donc là je suis dans mon Form 7.Dans mon projet Form 7.
00:18:48 :Ok.Allez, tac.T'as pas une mise à jour à faire ?Je regarde ce qu'il se passe.Parce que des fois ils te bigent avant de faire des mises à jour au niveau du système d'exploitation.
00:19:03 :Des fois t'as des bugs comme ça, t'as des ralentissements, t'as des bugset c'est après qu'ils te préviennent qu'il y a une mise à jour.
00:19:09 :Ce soir ça avait l'air d'aller en plus.J'avais pas trop de problèmes, j'étais pas trop embêté.J'ai jamais eu d'emmerdement en fait.Là j'ai l'impression que j'ai mon indicateurest-ce que ça passe ? Est-ce que ça vient passer ?
00:19:24 :Sinon passe sur Firefox, tu seras peut-être moins gêné, non ?Ouais, je vais regarder.Est-ce que j'ai une mise à jour à faire ou pas ?
00:19:33 :Ou pas ?On va regarder ça.On va regarder ça vite fait.Tac.Ok, ben écoutez.Tac, je vais faire ça comme ça.Là j'ai des gros gros ralentissements qui sont assez horribles.
00:19:58 :Non, c'est parce que je suis arrivée, c'est pour ça.Peut-être ça, ouais. Je regarde vite fait un peu.Qu'est-ce que je fais si je change de navigateur ?
00:20:09 :Non.Je vais le couper.J'ai quoi de lancé là ?C'est pas grave, on verra plus longtemps ce qu'il se passe après.Ok.Ok, ok.
00:20:31 :Est-ce que c'est que je vais bien lancer ?Alors, j'ai coupé mon deuxième écran.Je vais couper cet écran-là.Hop.Alors, c'est quoi ?Hum hum.
00:20:55 :Ça n'a pas l'air de changer grand-chose ici.Ah, peut-être.Je regarde, est-ce que je lancerai pas ça qui ferait ça ?J'ai l'espoir que c'est mon terminal.
00:21:07 :J'ai fait la dernière mise à jour de Mac, mais je pense que ce serait ça qui joue quand même.Ça serait dommage.Non, je pense pas que ce soit ça.
00:21:17 :Euh, alors attendez.Je vais arrêter de buter les ralentissements avant la mise à jour.Je vais essayer de recouper une dernière fois mon écran.Je vais pas arrêter mon truc, il n'y a pas de problème.
00:21:30 :Ok.Euh, attendez.Bah écoutez, c'est mal.Bon, là, je suis dans ce monde.Il y a repas, hein.Bah écoutez, je sais pas ce que j'ai eu.
00:21:43 :Ça va, je pense que c'est bizarre ce soir.Je sais pas, je...C'est magique.Écoutez, vous devez finir à quelle heure ?Normalement, on termine à bientôt à la base.
00:21:55 :Vous avez le temps ou pas de décaler une demi-heure ou c'est compliqué pour vous ?Pour moi, c'est ok.C'est ok pour moi.Pas de soucis.
00:22:05 :Bon, ok, je sais pas.Je sais pas ce qu'il s'est passé.Franchement, je vais essayer de relancer juste une dernière fois mon double écran.Bah du coup, on va pouvoir papoter un petit peu sur la formation et...
00:22:17 :Vas-y, allez-y, allez-y.Et puis comme ça, je vais poser plein de questions.C'est Antoine, c'est ça qui...Yes.Petite question, tu t'es mis à temps complet ou tu fais ça en dehors ?
00:22:33 :Je fais ça pas à temps complet parce que...Déjà, j'ai une activité de développeur à côtéet j'ai aussi une activité de musicien et d'enseignant-chercheur en musique.
00:22:46 :Du coup, pas du tout à temps complet malheureusement.Mais tout ce que je fais à côté m'intéresse.Mais en quelques heures par jour, on s'en sort très bien.
00:22:56 :C'est très cool.Qu'est-ce que tu veux dire par quelques heures par jour ?Je travaille le piton entre...La moyenne, ça doit être deux heures par jour, je pense, sur le piton.
00:23:11 :Et avec des points quand je suis vraiment en train de me prendre la tête sur un projetou sur un truc que je pige pas, je dois y passer 4-5 heurespour vraiment essayer de piger le truc en détail.
00:23:21 :Mais voilà.Ok.Et du coup, tu l'as fait en combien de temps ?Trois mois, je crois.D'accord.Oui, c'est ça, trois mois.J'ai fait vite les exos.
00:23:35 :En fait, le truc, on en discutait tout à l'heure avec Gabriel,mais je pense qu'il y a le langage et il y a les paradigmes de programmation.
00:23:42 :Et moi, je suis parti en connaissant les paradigmes.Tandis que la PO, je connaissais déjà ça bien, en fait,vu que je l'avais passé dans le titre ERNCP.
00:23:51 :Du coup, toutes ces problématiques-là se posaient pas, en fait.Donc, je pense que c'est ça qui est long dans l'acquisition de la programmation.C'est plutôt les paradigmes de programmation que le langage en soi, quoi.
00:24:04 :Moi, j'avais commencé par faire une autre formation avant de connaître,découvrir Doctrine, mon plus grand regret.Et l'autre formation, ça s'est pas super bien passéparce que moi, je suis vraiment débutant-débutante en programmation.
00:24:20 :Et j'ai énormément galéré parce que, voilà,il y a des choses qui sont complètement pas du tout adaptées.Et du coup, en fouillant, en cherchant justement des cours vraiment pour...
00:24:32 :Vraiment, c'est quand tu commences vraiment en tant que novicepour avoir quelques bases.Et je suis tombée, comme ça, sur Odiemy,sur le cours de Doctrine et j'ai vraiment accroché.
00:24:44 :Et c'est vraiment super bien expliqué.Ça m'a permis de comprendre beaucoup de choses.Je te dis, en l'espace de 3-4 heures, déjà, j'avais comprisce que j'avais mis quasiment 3 mois l'autre côté à comprendre.
00:24:54 :J'ai exactement le même retour.L'école que j'ai faite avant était bien moins pertinenteet pourtant, je l'ai finie parce que j'ai été inscrit, je suis allé au bout.
00:25:02 :Mais moi qui enseigne depuis pas loin de 20 ans maintenant,j'avoue que la qualité pédagogique de Doctrineest nettement supérieure à d'autres écoles que j'ai pu faire avant.
00:25:15 :Après, le contenu est moins dense et plus recentré autour d'un langageet c'est assez pertinent de ce point de vue-là.Je trouve que les écoles se perdent vite en essayant de faire beaucoup de choses.
00:25:25 :Et c'est comme ça qu'on se retrouve avec des cours Reactqui sont encore sur les classes alors qu'on les utilise plus que des années.Et c'est une catastrophe.
00:25:35 :Donc je salue l'initiative de Doctrine à ce sujet-là.C'est cool. En tout cas, merci.Ça fait plaisir.T'as bien fait de lancer l'enregistrement encore.Ça a l'air de marcher.
00:25:50 :Je pense voir ce qui...Vous voyez mon écran pour l'instant ou pas, c'est bon ?On voit très bien.Ok, super. On va continuer comme ça.
00:26:02 :J'ai coupé un peu les post-gress et tout ce qui est en arrière-planmais ça me paraît bizarre ce que j'ai...C'est peut-être... Autant pour moi...
00:26:13 :Petite question, juste une petite appartie.Regarde au niveau de ton...de VAC.Ouais.Regarde, je crois que c'est peut-être un problème de mise à jour.
00:26:25 :Il y a peut-être un truc, non ?Ouais, je l'ai fait, là.C'est bon, je l'ai fait, mais ça me paraît très bizarre.Je sais pas, c'était bizarre quand même.
00:26:33 :C'était lent. C'était lent. C'était bizarre.Ok.Surtout quand j'ai lancé le navigateur.Le problème, c'est que du coup, je pouvais pas vous montrerquand je faisais un run serveur.
00:26:40 :C'était un peu embêtant.Et même quand j'y allais sur la dock, ça allait, mais...Moi, de mon côté, j'avais lancé un deuxième navigateur sur mon écran...
00:26:50 :second écran pour préparer la suiteet j'avais rien qui chargeait, alors c'est bizarre.C'était vachement long.Je sais pas si ça vient de Chrome ou autre, mais bref.
00:26:59 :Je ne pense pas, parce que là, ça a l'air de...Je sais pas si je prends une...Oula. Je bouge pas trop, parce que je suis viré lentement.
00:27:07 :Ok.Ok. Bon, c'est pas grave.Je vais pas lancer trop de frayasse, du coup.Du coup, je vous ai, sur le stream, sur Google Meet,plus mon VS Code.
00:27:18 :Et je ne sais pas ce qu'il passe ce soir.Je pense pas sur la connexion.Je sais que ce soir, moi, j'ai...j'ai...les frais qui sont en maintenance dans mon secteur.
00:27:29 :J'ai reçu un mail, je viens de vérifier.Effectivement, quand je suis en hausse sur mon téléphone,j'ai rien sur mon téléphone.C'est pareil, ça galère à charger.
00:27:36 :Bon, bref.Je sais pas ce qu'il passe.Ok.Donc, j'ai peut-être un petit problème côté Internet,mais aussi, si vous voyez mon écran,moi, tout va bien, ça me va.
00:27:47 :Y a pas de problème.Du coup,euh...Oui, donc, je parlais des Forms 7.On va se passer de la doc,les modèles Forms 7.
00:27:57 :En gros, on va partir sur un projet.Je vais aller...Ouais.Je vais pas utiliser ce que je vais faire de ma façon.Hop.Tac.
00:28:06 :Tac.On va partir sur une classe, du coup.Hop.Euh...Donc, on part sur une classe,sur un modèle, du coup.On va faire très simple.
00:28:18 :On va l'appeler...projet,et on va juste avoir un carton, ici.Et on va lui donnerun nom, simplement.C'est juste pour avoir deux modèles.
00:28:30 :Donc, dans un projet,qu'est-ce qu'on pourra avoir ?Euh...On pourra avoir, ici,donc, des tâches.Tac.Aujourd'hui, on appelle ça projet.Bref.Euh...Projet.
00:28:42 :Tac.Projet.On aura des tâches.Donc, là, c'est pareil.On va avec les modèles.Aujourd'hui, c'est pareil.Les modèles, avant, c'était simple.On va utiliser notre projet.
00:28:50 :Donc, tac.On va avoir,du coup,une flore MK,qui seraliée à notre projet.OK.Si jamais on supprime un projet,on va faire en sorte de...
00:29:07 :Vous me dites ça, si jamais il y a un truc nouveau.On fait en sorte de supprimertoutes les tâches qui sont liées à ce projet,avec la cascade, ici.
00:29:15 :Et on va créer, ici,un...Tac.Une relation inverse,qui fait queon pourra passer,ici,on pourra faire, par exemple,quand on aura récupéré un projet,on pourra faire un projet,un TOS,en haut.
00:29:32 :Comme ça, on pourra récupérertoutes les tâches d'un projet, directement,avec la relation inversée, ici.Donc, voilà.Tac.Bon, je vais mettre un petit nom.
00:29:45 :Tac.Bon, je suis quand même un petit peu inquietpour mon bac,qui était au ralenti depuis tout à l'heure.Ça me...Je crois qu'il m'enlève.
00:29:55 :Tac.Hop, et on fait un boulet.Un boulet.Un boulet complet, ici.Eva, tout à l'heure, tu me disais un trucpar rapport à mon...
00:30:05 :Tu me voyais...Tu me voyais en double, tout à l'heure,mon bac, ou tu voyais quelque chose...Ouais.Ouais, c'était bizarre.Non, mais ne stresse.
00:30:13 :Des fois, à mon avis,c'est plus ta connexion.Donc...Je ne vais pas relancer la petite guéguerremat-pc, mais bon,les bacs, ça tient beaucoup plus longtempsqu'un pc.
00:30:22 :N'est-ce pas ?Donc, non, non, mais ça va.Je pense que c'est...Ouais, c'est plus ta connexion qui...Ouais, je pense.Là, j'ai le dévariantiment, aussi,sur mon iPhone.
00:30:32 :Et je vois qu'à la maison,j'y galère aussi.Donc...Bon, ok.Tac.Du coup, je vais le mettreen défaut à false.Tac.En défaut à false.
00:30:43 :Ok.Ouais, ouais, j'avais le partaged'écran de fou,et j'ai, en fait, mon iPadqui est couplé à mon Macen deuxième écran.Et je pensais que ça venaitun peu du couplage,qu'il y avait un souci.
00:30:55 :Du coup, moi, ça me faisait un truc.Ça me ralentissait tout.Non, non, je pense que c'est plusta connexion réseau.Et faire un mentorat avec toutqui tourne en saccadé,c'est juste pas possible.
00:31:06 :Ok.Donc, nickel.Écoutez, tant mieux.Ça me rassure.Du coup,bon, je vais faire plus pratique, ici.Tac.On va lui dire...On va la prendre...
00:31:20 :Self.name, ici.Self.nom.Pardon.On va le mettre en anglais, du coup.Hop.Voilà.Qu'est-ce qui est mieux, c'est de...Enfin, j'ai posé pas maldes questions de débutantes.
00:31:34 :Qu'est-ce qui est mieux, c'est plusd'écrire les choses directementen anglais ou...Ben, normalement, oui.Normalement, oui.Sauf pour quelqu'un, là,pour qui je fais une application.
00:31:43 :Et je lui ai fait en françaisparce que...Bon, normalement,lui, il n'est pas né dans le club,mais je suis resté en françaisparce qu'en plus,c'était un vieux projet de Djangoen version 1.3
00:31:54 :qui était déjà en français.Enfin, c'était à moitié français,à moitié anglais, donc...Je sais que pour la personnequi vit en français,elle est une grosse partie en français.
00:32:02 :OK.Allez, hop.Euh...On fait pareil.On va mettre quoi ?On va mettre le titre de la tâche, ici.C'est juste pour l'admin,pour avoir un meilleur rendudans l'admin.
00:32:13 :Tac.Hop.Et on reprend un verbose.name.Voilà.Et maintenant,on va appliquer quelque chose de sérieux.Tâche.Hop, hop.OK.Euh...C'est bien,mais dans les settings.
00:32:28 :Du coup, je suis...Je suis...Hop là.Le stress.Tac.L'application s'appelle Project Manager.Hop.Project Manager.OK.Euh...Donc là, j'ai mes modèles, tout.
00:32:46 :On va...On va se faire une migration.On va créer les fichiers de migration, plutôt.Et on va faire une migration.OK, super.On va quand même se créer un super utilisateur.
00:33:01 :Et on va pouvoir attaquer les choses sérieuses.Hop.Et surtout, arrêtez-moi s'il y a une question.Tac.OK.Euh...Mince.OK.Euh...Tac.OK.C'est bon.
00:33:25 :Donc, maintenant,on a créé les modèles.Euh...On va...les importer pour l'admin, ici,parce que ce sera plus facile.J'ai déjà fait comment ?
00:33:35 :Project et...Tasks.OK, voilà.Hop.On va s'embêter.Euh...Admin.Admin.Site.Register.Hop.On va faire un projet, ici.Et l'autre, du coup, va importer.
00:33:53 :On va mettre Tasks.Tac.Hop.Hop.OK.Et...De ligne d'espace.Voilà, c'est bien.C'est bon.Tac.Et je vais lancer...le serveur.OK.Euh...
00:34:12 :J'ai fait une faute.Je fais une faute dans...Ah oui, d'accord.Register.Register.Voilà.T'as cassé.Ah, t'as dit quoi ?T'as encore failli lire.
00:34:28 :OK, ouais.Register.Tac.Merci.Hop là.OK.Euh...Tac.Euh...Tac.On relance le serveur.OK, c'est bon.Tac.Et...Ça, c'est pas ouvert.Ça, c'est ouvert sur mon iPad.
00:34:50 :C'est bon.OK, nickel.Donc là, on a bien...notre super application.Je vais me connecter, ici, avec mon username.Hop.Donc, on va l'écrire un premier projet, hein, pour...
00:35:05 :je crois qu'on va l'appeler...projet 1.C'est pas mal, non ?Bon, on va en mettre deux, mais je pense qu'on va en faire 15.
00:35:13 :On va déjà en avoir un et des tâches.On va en ajouter une, hop, au projet 1.On va l'appeler...tâche 1.Hop.Et une deuxième.
00:35:24 :Je vous laisse deviner.Tâche 2.Hop, voilà.OK.Heu...Heureusement, j'ai préparé des petits templates pour faire des templates.Euh...Non, j'ai à peu près les templates d'année pour soir.
00:35:38 :On va se couvrir de A à Z.Donc...Donc là, on a créé un...on a un premier modèle.Et on voudrait...on voudrait d'avoir une vue...
00:35:48 :ici.Donc, déjà, une première vue.Une première vue.Tac.Je pense qu'on va devoir désactiver...le système de copilote.On va aller plus vite.On va utiliser, ici...
00:36:01 :Redirect.En plus, on en aura besoin.Je vais vous montrer.Enfin, je pense qu'on va en avoir besoin.Il m'importe ça.Ça me va très bien.
00:36:09 :OK.Donc, maintenant, on va avoir une première vue d'index, ici.Euh...Index.Euh...Ouais, je vais bien foutre mes projets.Enfin...Je vais me faire un render.
00:36:21 :C'est sûr que...OK.Écoutez.Pour moi, ça me va.Et donc, on va créer, ici, un dossier...Templates.Et dans ce template, ici...Ça, Antoine, qui a fait du Django tout à l'heure,je sais pas si ça t'a choqué d'avoir des...
00:36:35 :des dossiers de sous-dossiers qu'on va appeler avec le...le même nom de l'application, comme ça.Je sais pas si tu l'as fait.Hop.Project Manager.
00:36:46 :Si, si, ouais.C'est cool pour bien s'organiser.File.Index.HTML.Tac.Et on va avoir notre fichier HTML.Donc, on a vu aller créer.Le fichier HTML est vide pour l'instant.
00:36:58 :Je ne vais pas m'embêter.Je vais tout faire dans le...Je crois que c'est pas le but.On va tout faire ici.Project Manager.On va prendre le fichier vue directement.
00:37:11 :Donc, on va faire ça directement.Hop.Il a raison.Un point de view.Nickel.C'est ce que je voulais.OK.Donc, là, on a déjà accès à notre vue.
00:37:21 :Donc, si je lance mon serveur, ici...Normalement, j'ai rien.Voilà.On a une page vide.Donc, ce qu'on va faire, c'est qu'on va...On va prendre une...
00:37:33 :On va, en fait, pour l'instant,tout juste boucler...Tout juste boucler sur...Et voilà.Sur les projets.Donc, Kim le fait bien.Projet.OK.Alors...
00:37:48 :Ouais.Ça me paraît pas mal, en fait.Non, je vais m'embêter.On va enlever ça.OK.Pourquoi il me fait un événement de fard comme ça ?
00:37:57 :Ah oui, d'accord.Non, je ne veux pas m'embêter avec les tâches.OK.Je vais juste arranger ce qu'il dit.S'il y en a qui ne sont pas habitués avec le langage,autant pas être dans le groupe, vous me le dites.
00:38:07 :On voit ça.Il n'y a aucun problème.OK.Je pense que je te poserai pas mal...Enfin, je te poserai pas mal de questions au groupe,mais quand j'aurai vraiment commencé la formation,à attaquer les cours de Python et de Django,pour...
00:38:25 :Là, en fait, je viens, c'est plus pour me remettreun peu dans le bain avant de me remettre.Ouais, pas de souci.Pas de souci.
00:38:32 :D'ailleurs, petite question.Vas-y.Pour les templates, si jamais, par exemple,je me fais un template sur Photoshop ou Illustrator,est-ce que je peux l'intégrer directement ou...
00:38:43 :C'est-à-dire que tu...En fait, sur Django, tu vas avoirtes fichiers statiques de CSS,ton CSS,qu'on j'invascule d'un côté,et tu auras après un fichier comme ça avec ton HTML,ton template.
00:38:59 :Mais parce qu'après, tu les exportes comment,avec Illustrator ?Est-ce qu'il y a un format ?Ben, moi, je les avais mis en...J'avais testé en IA, je crois que c'était passé,il me semble, sur le projet.
00:39:10 :Et après, j'avais fait des découpages,mais j'ai appris...Enfin, j'ai des projets que je n'ai pas terminés,donc j'essaie de voir quelles sont les possibilités,tu sais, pour faire un template au niveau...
00:39:22 :assez original, justement.Mais bon, c'est pas...Enfin, on verra ça un peu plus tard, de toute façon.Tu peux passer par Adobe XD,qui peut exporter les fichiers statiques et les CSS,mais après, plus que ça, ça devient touchy.
00:39:34 :Ça devient vraiment très compliqué.Voilà, c'est ma question, en fait, du coup.Comment ça s'exporte, c'est ça.Je n'utilise pas Illustrator, c'est pour ça.Je n'ai pas Adobe, moi.
00:39:43 :J'ai mis Adobe Air.Il y a Figma, en version gratuite aussi,qui fait la même chose.Tu peux exporter directement tous les fichiers de styleet les fichiers statiques,depuis directement Figma ou Adobe XD.
00:39:58 :Je devais voir, justement,pour essayer de tester autre chose que des styles...Enfin, des éléments style Photoshop et Illustrator,je vais essayer de trouver d'autres façons de procéder,parce qu'Adobe, là, ils ont bien augmenté leurs fris.
00:40:13 :Voilà, c'est bon, quoi.Ça fait un peu mal,et j'essaie de voir s'il y a d'autres techniquespour toujours open source,pour pouvoir faire des choses assez intéressantes,parce que sinon,à chaque fois qu'on part sur des trucs payants,payants, payants, payants,à la fin, tu ne t'en sors pas, quoi.
00:40:29 :Figma gratuite.Pour l'instant, du moins,pour une utilisation simple,Figma gratuite.À voir.Moi, je pensais qu'il y avait une boîtequi utilisait ça,enfin, un mec qui utilisait ça,et il me semblait qu'il y avait une partie gratuite.
00:40:40 :Enfin, ouais,il me semblait qu'il y avait une partie gratuite.Il faut voir ce qu'elle donne, ouais.OK.Moi, je travaille avec, depuis longtemps,Figma.
00:40:49 :C'est vraiment cool.Pour le coup...Ouais.Ouais.Et je viens, justement,d'Illustrator et Photoshop,donc, vraiment,Figma, ça marche, quoi.Bah, nickel.Nickel.C'est bon à savoir.
00:41:01 :Merci.Du coup, la vue d'index.On a bien notre projet 1 et projet 2qui apparaissent ici.Donc, là, il n'y a pas de template.
00:41:07 :Je ne me suis pas embêté pour l'instant.On verra pour en faire un rapidement,après, si vous voulez.Le but, c'est ça,Reform7 Factory.On n'a pas encore commencé, d'ailleurs.
00:41:14 :Là, je prépare les vues.Je vais me dépêcher de l'aideravec le retard que j'ai pris,là, tout à l'heure.Et on va avoir une vue de détailpour avoir, en fait, chaque projet.
00:41:25 :Voilà.Hop.Déf.On va se faire une project scale.OK.Le project ID.Qu'est-ce qu'ils proposent ?On va juste mettre PK,si je ne suis pas embêté.
00:41:36 :Tac.OK.J'ai mon projet.Et je pense que j'aurais pu,d'ailleurs, envoyer toutes les taffsJe réfléchis en même temps.OK.Les taffs, il me le fait,donc je vais le garder.
00:41:50 :On va regarder.On ne va pas s'embêter.On va appeler project.OK.OK, OK.C'est bon.Nickel.Donc, on va se créer un nouveau fichierqu'on va appeler, du coup,project.html.
00:42:08 :Ici.Et dans ce fichier-là,on va utiliser les Forms 7.On va directement utiliser les Forms 7, du coup.Ouais.On va faire ça.Je vais le mettre au bout pour l'instant.
00:42:20 :Mon index, il est là.J'ai mon url.OK.Donc, c'est parti.Pour les Forms 7,en gros, on va vouloir,ici,dès qu'on va cliquer sur un projet,afficher toutes les tâches qui sont crééeset pouvoir en supprimer ou en modifierdirectement sur une page.
00:42:40 :Donc, en gros, on va...Ouais.L'url, j'ai ouvert.C'est bon.On va se créer un nouveau fichier.On va appeler forms.py.Pour ceux qui font le Django,vous l'aurez sûrement déjà vu.
00:42:50 :Et on va...On va juste importer tasks, ici,parce que les tasks n'en suffiront.Et on va se créer, du coup...On va faire comme ça directement.
00:43:05 :On va...Et on va importer, du coup,je ne veux pas rien.Justement.Il est malin, lui.Il veut me le faire direct.On va se prendre un modèleForms 7 Factory.
00:43:15 :Hop là.Et qu'est-ce qu'il nous propose ?OK.On aurait la tâchequi complète.OK.Extra, égal 1.Justement, je ne veux pas d'extra.OK.
00:43:29 :Il me le corrige.Same title, 0.Et il oublie un truc.Merci.OK.Donc, là, en fait,on a un modèle Forms 7 Factory.Vous allez voir, justement,ce que ça va faire.
00:43:40 :Donc, ça,c'est hyper puissant.Donc, on va l'utiliser dans notre vue.Hop là.C'est là.Et donc, on va, ici,l'importerdans notre Forms 7.
00:43:54 :Par contre, j'en ai un peu ça,parce que ça va être5 minutes au moins.Donc,on a nos projets,nos tâches,et on va vouloir avoir, ici,un Forms 7, ici.
00:44:03 :On va l'appeler Forms 7.On va l'appelerTask Forms 7.Donc, l'objet qu'on a créé, ici,dans Forms,dans notre Forms 7, ici.Là, on acréé un objet.
00:44:14 :OK.Avec le modèleForms 7 Factory.Donc, on a mis les champs.Donc, on veut que les titreset le statut, ici.Titre, statut.Mais on n'a pas le projet.
00:44:28 :Parce que, dans tous les cas,on va filtrer que par,que pour un projet, ici.Dans la vue,on va prendre un projet, ici.On le récupère.
00:44:36 :On va vouloir que les tâchesde ce projet, là.Donc, on récupère les tâches,ici,quand on fait un project.tasks.all.Puisque, dans le modèle,on a, ici, une relation inverse,ce qui fait qu'on peut faireprojet.
00:44:46 :Donc, ici,il y a la foreign key du project.On fait project.tasks.all.J'ai fait la migration,donc on va éviter de retoucher à ça.Vous m'arrêtez si jamaisil y a un doute.
00:45:00 :Donc,quand t'as une erreurde conception,tu peux vite faire ma petite erreur.Il faut que je regarde ça.Du coup, on a le...Donc, pour le FormSet, ici,on va aller créer...
00:45:13 :On va lui spécifier un Core I7.Et on va lui dire qu'on veutque les tâches.Pourquoi ?Parce qu'on veut uniquementles tâches,ici,du projet en cours.
00:45:26 :Du projet auquel on accède.Donc, là, on accède bienau projet par le PK.On récupère toutes les tâchesde ce projet.Et le FormSet,c'est-à-dire,c'est le FormSet.
00:45:38 :On lui spécifie ce Core I7.Et maintenant,est-ce qu'il le devine d'avance ?Non, parce que je l'ai coupé.Donc, on va direFormSet.Et on va lui direque ce sera le FormSet.
00:45:55 :Donc, là, on a déjà pas mald'infos qu'on va pouvoir envoyerdans notretemplate.Donc, ici, comment ça marcheun FormSet ?Alors, rien de très compliqué.
00:46:06 :On va le lire.Donc, on va avoir un formulaireici avec une méthode.Voilà, c'est une méthodepost.Ouais, du coup, Antoine,pour info, ça fait...
00:46:16 :Il y a pas longtemps que je passesous Mac, en plus.C'est assez récent.Donc, j'ai vu ton message,je vais le lire après, du coup.
00:46:21 :Mais il faut que je regardeun peu ce qui m'a...C'est le réseau qui est en vrac.Je regarderai ça.Merci pour ton message,en tout cas.
00:46:28 :Il faut penser toujoursà lui mettre,ici, donc, pour ceuxqui ne connaissent pasle Blanco, ce qu'on appellele CSRF,c'est SRFToken.Voilà.
00:46:40 :Et quand vous avezun FormSet comme ça,il faut toujours penseràutiliserla variable, ici,qui va être là,qui va êtrele FormSetpointmanagementform, ici.
00:46:55 :Voilà.Et là, c'est parti.Vous avez doncvotre variableet vous allez ici dire,du coup,on va créer une boucle,en fait.Tac.Et on va direpour chaque formulaire,chaque formulaire,excusez-moi,forFormInFormSetet on va fermer la bouclemaintenant comme ça sera fait.
00:47:15 :Tac.Euh, non, comme ça.Hop, on va avoirn4, n4,tac.On va avoir la boucle ferméeet on va envoyer,chaque fois,chaque formulaire.
00:47:28 :Hop.Donc, on va avoirtous nos petits formulairespour chaque tâche.Et bien sûr,on n'oublie pasle bouton,le typesubmit pour envoyerle formulaireet puis,on n'est pas mal,on va mettreenregistrerles tâches.
00:47:48 :Hop, hop.Donc là, maintenant,je pense qu'on devrait êtrepas mal.On va se faire une vue.On va créer l'URL, ici.Euh, comment on va l'appeler ?
00:47:58 :On peut l'appeler, je ne sais pas,on peut l'appelerprojet,projet,tac.On va lui diresous le pk.J'avais vu la commande,j'ai vu déjà,c'est plus le projet de détail,là.
00:48:15 :Projet de détail,ici, on va l'appelername est égal àdétail.Je ne sais pas commenton va l'appeler,voilà.Projet de détail,ici.Projet de détail,ainsi de suite.
00:48:27 :Voilà.OK.Donc là, on a notre vuequi est, notre URLqui est faite.Donc, pour l'index,par contre,on va vouloir accéder, du coup,à chaque,à chaque,comment dire,euh,au détail de chaque projet,voilà, excusez-moi.
00:48:43 :On va se faire,bon, je me mets tout seulà rage comme ça,mais c'est pas grave,on va mettre un vieux lien.Tac.On va direle but est que ça fonctionnece soir.
00:48:52 :Je suis plus à ça près.On va aller,je l'ai appelé comment,détail, je crois,la vue,si quelqu'un se souvient.Hop.Et je l'avais appeléepk, il me semble.
00:49:01 :On va mettre,c'est un projet.Alors, j'ai appelé,on va utiliser le mot,le mot clé pk,enfin, le pk,parce que j'avais mis pkdans la vue.
00:49:09 :On va rester cohérent,mais on aurait pu être id,ça marche aussi.OK.Tac.Et je l'avais appeléde détail.OK.Bon.Donc, normalement,euh,j'ai une erreur de syntaxe,puisque,voilà.
00:49:23 :Et je vais mettre,voilà,on va voir les détails.Nickel.OK.Maintenant, on lance.Et,il y a un problème.Euh,OK.C'est normal.Je l'ai appelé de comment.
00:49:36 :OK.Donc,je l'ai mis en français aussi.Donc,j'ai commencé en anglaiset je l'ai mis en français.C'est pas grave.Hop.Je retourne dans mon form set.
00:49:45 :Titre.Ce qui est bienavec Django,c'est que,en fait,dès que vous faites un truc de travers,vous le savez tout de suite.OK.
00:49:58 :Donc,là,j'ai bien accès.Du coup,maintenant,j'ai un lien.Est-ce qu'il n'y a pas de bug ?Il y a un bug.Pourquoi ?
00:50:07 :J'ai mis un end for.OK.Euh,pourquoi ?J'ai mis mon,euh,fiou.Tac.Il manque le D.End for.Merci.End for.Voilà.Voilà.
00:50:21 :Donc,je suis d'accord que c'est moche.Vous avez ici,euh,les tâches qui existent déjà,hein,qu'on a vues dans la ligne tout à l'heure.
00:50:28 :Voilà.Donc,vous avez le projet 1qui est les tâches.Donc,vous voyez qu'on a une tâche 1,tâche 2.Le projet 2,en fait,il a rien.
00:50:39 :On s'en fout.Il est vide.Donc,tâche 1,tâche 2,on voit qu'on a bien ça.Donc,maintenant,si je fais ça,genre,je fais,je fais rien,puisque on n'a pas encore,vous allez voir,il n'y a rien de modifié,hein.
00:50:55 :Tac.Et ça peut être toujours pareil.Parce que,du coup,maintenant,votre Form 7,c'est comme un formulaire normal,à peu de choses près.Il faut pouvoir le gérer dans votre vuequand vous envoyez une méthode poste.
00:51:05 :Euh,tac,celui-là.Donc,maintenant,on va pouvoir créer notre vue complète,euh,qui est là,voilà.Et donc,comment ça se passe ?Donc,on a bien nos tâches,projet,donc,euh,je vais couper 5 minutespour qu'on y aille doucement.
00:51:23 :Donc,c'est comme avec les formulaires normaux,pour ceux qui ont l'habitude,je ne sais pas,il y en a qui ont l'habitude avec les formulairesou c'est le moyen ?
00:51:29 :Pour la gestion des formulaires.Moi,c'est bon,tu peux y aller.Ouais.Moi,ça va,j'ai quelques notions,donc,ça me parle.OK.Donc,quand vous envoyez un formulaire,comme ça,on passe par les méthodes postes.
00:51:44 :OK,on n'est pas en guête ici.Donc,si jamais,enfin,c'est ça que j'adore avec Django,enfin,je pense que,Antoine,tu es avec Laravel,c'est pareil,je pense que tu peux conditionnellement,dans tes vues,gérer,en fait,ce qui se passe.
00:52:00 :Je ne sais pas si c'est comme ça en PHP.Si,si,ouais.En Next,pareil.OK.Donc,là,si on est en méthode poste,on vagérer ça différemment.
00:52:12 :Donc,c'est parti.Donc,on va reprendre notre Formset,ici,qu'on avait créé plus bas.Hop.On va le,on va le rechercher.On va lui envoyertoute,on va,dans notre requête poste,on va l'envoyer dedans directement.
00:52:26 :Et on va reprendre aussi notre QuerySet.Hop.Qui étaitdans ceci.Si jamais,enfin,si,si votreFormset,il estvalide,OK.Tac.Qu'est-ce qu'on va faire ?
00:52:40 :Eh bien,on va dire,tout simplement,on sauvegarde.Voilà.Et puis,si on sauvegarde,on fait quoi ?On va faire un redirect,ici.Et on va envoyer çavers,on avait appelé le Detail,la vue,croix,tac.
00:52:56 :Et on avait dit PK,c'étaitpar rapport au projet.Voilà.PKou AI,ça fonctionne.Donc,on va,tac.OK.Sauf que maintenant,on va,on va,on va,sauf que maintenant,on va se dire que,euh,on va se mettre un Else,ici.
00:53:16 :Hop.Pas ici,surtout.Connerie.Tac.Tac.OK.Donc,on a bien le cas,on arrive sur une,sur une méthode Post,on arrive ici.Si on n'est pas en méthode Post,c'est qu'on est en méthode Else,en méthode Get,excusez-moi,on va arriver dans le Else,ici.
00:53:34 :Donc,maintenant,si je relance,je n'ai pas d'erreur,je n'ai pas d'erreur.Donc,je n'ai pas d'erreur,surtout.Oui,oui,on va bien voir.Tac.
00:53:46 :OK.Maintenant,système modif.Modif.Attention.Hop.J'ai enregistré,et normalement,avec le Redirect,je suis venu,ma console,elle me dit quoi ?J'ai bien fait une Post,je suis revenu en Get,je suis revenu sur projet 1.
00:54:01 :OK.Donc,si je vérifie,je recharge la page,même si je vais voir en base,dans l'admin,non,ça ne marchera pas.Tac.Dans l'admin,ici,dans mes tâches,voilà,modif, modif.
00:54:16 :Elles n'ont plus été modifiées.Donc,si je retourne ici,que je fais ici,donc,je passe en Complete,si je fais Delete,hop,elle est supprimée.
00:54:25 :Donc,là,vous voyez,en fait,vous avez,en fait,du coup,vous avez,ici,on a un Formset,et ce qui nous permet,en fait,de gérertoute une liste,en fait,toutes les tâches,ce sont dans le formulairequ'on peut supprimer,modifier.
00:54:44 :Sauf que,sauf que,ici,il y aun truc,Extra,on va passer à 1,et vous allez voirce qui se passe.À quoi ça sert ?
00:54:54 :Donc,je recharge,voilà.Donc,en fait,du coup,maintenant,vous pouvez,non seulement modifierou supprimer,mais vous pouvez aussiajouter des tâches,directement ici.
00:55:07 :Tout à l'heure,vous m'avez dit quepersonne ne connaissaitdu coup les Formsets.Il me semble.Oui.Ouais.Est-ce qu'il y en a,du coup,qui voient une utilitépour l'instant ou pas ?
00:55:19 :Ou zéro ?Ça ressemble pas un peuau fichier,donc,100%,je vais zoner,je me trompe un peu,mais bon,je sais pas.C'est quoi ?
00:55:33 :J'ai mal entendu,c'est quoi ?Non,je disais que ça ressemble pasau fichier 100% JSON,parce qu'en fait,j'ai marquéque quand il n'y a pasles classes,je me trompe.
00:55:49 :Ah,non,bref.Tu veux dire quoi ?Au niveau de ta question,par rapport à JSON,c'est quoi ?En fait,ça ressemble un peuau fichier,donc,la fonction,c'est ça.
00:56:09 :Je n'arrive pas à me tromperma question,en fait.Je n'y arrive pas.Non,t'inquiète.En fait,du coup,ici,le but,c'est vraimentd'avoir,en fait,par rapport au panierque j'ai tout à l'heure,un panier par rapportà tous les autresqui sont dans le panier,de pouvoir afficher
00:56:28 :accès à toutes les tâchesd'un projet,ici,par exemple,et de pouvoir les modifiertoutes d'un coup.De pouvoir les modifierd'un coupet les en supprimerplusieurs d'un coup.
00:56:38 :Ce n'est pas pour allerfaire une par une,une par une,et ainsi de suite.Ah, d'accord.Juste,imaginons qu'ici,on veut rajouter une tâche.
00:56:46 :Hop,on la rajoute.Gros problème.Ici,en fait,il n'arrive pasà faire la liaisonavec projet.On a vu quela tâcheétait,on est sur NK,ici,de projet.
00:57:00 :Et en fait,quand vous faites ça,il n'arrive pasà faire la liaisonDjango.Donc,on pourrait très bienle faire manuellementdans la vue,à la sauvegardedu formuleuret de boucleret de dire,en gros,genre,mon instancepoint projetégal au projet,ainsi de suite.
00:57:19 :Enfin,bref.En fait,il y a un trucqui est beaucoup plus simple.On va le faire maintenant.Ouais,on va le faire maintenant.On va se faireun inline,du coup.
00:57:30 :OK,on va se faire un inline.Donc,maintenant qu'on a tout le code,ça va aller très vite.Ici,c'est qu'on fera,après on finira avecdu coup,avec htmx.
00:57:43 :Du coup,ici,si je reviens à mon formulaire.Donc,on utilisaitun modèlefront7 factory.On va utiliser,à la place,un inlinefront7 factory.
00:57:55 :Tac.Hop là,je regarde tout en même temps.OK,project.Donc ici,vous allez avoir,dans le inline,il va vous demanderle modèle parentet le modèle que vous voulez.
00:58:13 :Donc là,modèle parent,c'est bien projet.OK.On a le projetet les tâches.Donc là,j'ai bien projet,tâches.Je garde les mêmes champs.
00:58:23 :On va garder,du coup,le extra et le candelit.Petite choseà modifier,du coup,quand même,dans la vie.Pas de conneries.Ouais,on va se passer des tâches.
00:58:35 :On n'aura plus besoin.On va,on va utiliser notre poste.On la passera aussi ici.Et ici,du coup,ce qu'on va se dire,on va utiliser l'instance.
00:58:49 :Ça va être quoi ?Projet.Et donc là,c'est pareil.Tac.OK,parce que du coup,le modèle parent,ça va être,projet.Donc,en fait,vous avez juste à passer,en fait,dans votre Task Form Set,l'instance qui est votre projet.
00:59:07 :Et lui,il va directement aller vous cherchertoutes les tâches du projet.OK ?Grâce à la relation.Donc,maintenant,si je relance.Hop.Donc,vous allez voir que visuellement,ça ne va rien changer,quasiment.
00:59:20 :J'ai bien ça.Mais par contre,là,maintenant,je peux dire tâches.Donc,là,je peux dire tâches.Donc,maintenant,je peux lui dire tâches.Tâches.
00:59:32 :Tâches 2.Hop,on devient tâches 2,tâches 3,ainsi de suite.Tac.Et tâches 4,en bref.Donc là,maintenant,on peut rajouter autant de tâches qu'on veut.
00:59:43 :Et après,on peut aller en modifier,je ne sais pas,plusieurs d'un coup.On va l'appeler,voilà,tac.Tac.Tac.Là,c'est enregistré.Et maintenant,je ne sais pas,celle-là,je peux très bienvérifier que j'ai un bug.
00:59:59 :Tu as fait compliqué.C'était en complique.Ah mince,merci,il est là.Merci,hop,là.J'ai eu peur.Et là,ils sont bien supprimés.Voilà.
01:00:11 :Donc là,vous voyez,en fait,on peut bien tout faire.On a bien modification,suppression,on avait déjà.Et maintenant,on a bien l'ajout qui fonctionnepuisqu'on a la relation,en fait,que,enfin,Django va faire la relationgrâce,ici,voilà.
01:00:28 :Est-ce que,je réfléchis un petit peu,en même temps,je voulais faire quoi,après ?Est-ce qu'il y en aqui voudraient voirun petit morceaud'HTMXou c'est trop tardpour vous ?
01:00:39 :Il y a une petite question,là.Dans l'extra,il est à 1.Si,là,tu es dans l'inline 947,tu aurais vul'extra à 0.
01:00:48 :Alors,qu'est-ce que ça veut dire ?Est-ce que ça veut direqu'il y a un bugdans l'inline 947où il y a un bugdans l'inline 947 ?
01:00:55 :Est-ce que ça veut direqu'il y a un bugdans l'inline 947 ?Est-ce que c'est ça ?Est-ce que c'est vraiparce qu'il y en aun petit peudans l'extra 0-g ?
01:01:03 :Non,games brinent.Est-ce que c'estvraiment suitablepour véhicules en options writers ?Voilà,je croisque ça fait partiede ce que je diraisce que les giveawayssendent le teamà découvrir.
01:01:16 :Et si negativement,les bonus restentimpouvablesou par exemple,c'est parce qu'ils sontzeros,ou faudraità le payerparce qu'il y aune carterichepuis toutc'est bonmais vaches gars,des bonusde Poisone!
01:01:33 :Parce qu'il y ena pourjours.Pourquoipeut-êtresi est-ceque je peuxte proposerdes bonsbonusvaches?Le midi cet automnesthinkon stagedoncet du coupon leurdonnece bonushautc'estbonetaprèson vapasser aufinalde lacarteriche
01:02:04 :etil y enaplusieursquienabeaucoupplusmaisje vaisvousmontrerlesbonusquenousavonsdoncdoncje vaisdirej'aicombiende fichiershtmlon vafaire un vieuxpromptc'est pas graveje metsles fichiershtmlviacdnen généralle son
01:02:41 :d'anglaisen plusc'est quand mêmemieuxetje vaisvous montrerlesbonusquenousavonseton varegarderce qu'il vame fairealorsqu'est-cequ'il vame faireil y enaqui ontdéjàutiliséça oupasde quoibootstrapcloudcodecloudcodecloud
01:03:16 :codeouiokil m'étonneil y apeut-êtrequelque chosede plusrapideje veuxvoir ce qu'ilva me fairepour finiravec çaokokalorsokpas deproblèmeyesetl'autreil mel'aremisokoketon valancerleserveuron vajuste
01:03:51 :revenirun peusur leokpas deproblèmemercic'est gentildu coupil m'a bien misla cdn desicônesbon là il mel'a fait surles deuxhtml alors quenormalementje sais pasçaavec unbail et toutpas deproblèmeokon valancer
01:04:17 :on vavoiril auraitpume faireunmouaismouaismouaismouaisallezje lancejuste un derniertruchopnonmoilestyledemonlemecc'estennuyeuxl'airtaceuhnonjen'aipasenviedelefairelàhopçaprendtempsde partirsur une
01:05:01 :baseplussympaj'aipeurde voirce qu'ilva mefaireen faitokouaisallezpendantquec'estunpeutechniquelàt'importesdu couples tâchesdepuis leparentdepuis leprojetouaiset du coupquand tu faisça est-ceque tu peuxgérerla paginationdonc le
01:05:36 :nombred'élémentsde tâchesque tu vasimporteret pourensuitefaire unepaginationavecunepartied'euxpar exemplepas plusdans lefrançaisdans lefrançaisdirectementouaispourmoiil mesemblebonnequestionje croispasattendaussimaispar contreje pensequ'il vafalloirque
01:06:13 :tupassepar unpaginateurdu coupbah si en faitsi si situ vas passerpar unpaginateurnormalcomme situ faisaisune paginationpourmoilàla placepaginateurelle peutfaire leboulotouais12 ansmon dieuqu'est-cequ'il fait luiest-ce qu'il aun
01:06:42 :formec'estqu'il vaêtre làouaisouaisouaisouic'estokokdonctu peuxtu peuxle faireenapparemmenttu peuxle faireencomment direavecunpaginateurnormalet dansle templatedu couptu luirajoutes tonpaginateurokouaiseffectivementdonc tu pourraistu pourrais
01:07:18 :en faittonform setquand tu vasle créertu vas allerenvoyer directementton form setdirectementdans lepaginateuren grostu vasdans ta vueouaistu vasvoir luice qu'il me faitça me va pasdu toutouaisc'est pas graveje préfèrequ'il passe
01:07:42 :paricidonc il faudraiten grosque tu aillesicije peuxle faireentièrementhopencoreimportcespaginateurscomme çaeuhnonc'est parce queil y a peut-êtreencore un moduleicivoilàc'est çatu vasimporter laclassepaginateurqui estassez puissantedoncle form set
01:08:13 :de basedans le form seticiil faut que tu aillesen grosicitu ferais unpaginateuriciouaistu pourrais le faireaprès du couptu ferais unpaginateuriciunpaginateuriciouaisvoilàvoilàc'est çadonc tu pourraispasser parforms icidirectementpar forms
01:08:40 :dans ce casil me semble quetu dois passer parformsje pense que je suisquasiment sûrà te dire que làil ne goure paspour moi tu passespar formset aprèson getton pageicipas de problèmeet tu as ton paged'objetet tu as ton page
01:08:58 :d'un numérookaprès tu passesça là dedansouaisdonc si situ passesdirectementle paginateurce qui te sert du couppas uniquementtu vas aussifaire despaginateurset donc en faitc'est la mêmepièce que tu utilisespour çavoilàokcoolmerciouaispas de soucis
01:09:22 :voilàjuste pour finirje regarde icivoilà doncje le referai unpeu plus proprepour la prochaine foissi il fautje regardequelque chosesi j'ai bienmon pythonmon vérancequi s'activesinon je le feraiplus tardje vous montreraila prochaine foisun exempleque j'ai fait
01:09:43 :okdonc voilàdu coupest-ce queça vous sembleenfinça va vous semblerutile ou pasvous les farmsteadscomme çapour moicarrémentouaisouaispour moi aussiutile en faitje vais le travailleren faitnickelnickelbahabsolumentc'estbonpour ceuxqui ont l'habitude
Aucune occurrence trouvée pour « ».
00:25:51
Début du mentorat tardif suite à un problème technique.
00:43:15
Utilisation d'un modelformset_factory
00:57:30
Utilisation d'un inlineformset_factory