- 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 :La dernière vue qu'il nous manque pour réaliser la dernière opération des opérations CRUD,donc Create, Retrieve, Update et Delete, c'est donc la vue Delete qui va nous permettre desupprimer un article. On va donc retourner dans nos vues, donc on va aller dans le fichier views.py,
00:00:15 :on va importer tout en haut ici la dernière vue qu'on va utiliser, donc dans ce cas-ci DeleteView,et on va créer une classe qui va hériter de cette vue. Donc je descends ici,
00:00:24 :classe BlockPostDelete et on hérite de DeleteView. Là encore on remet notre modèle BlockPost puisqu'onva travailler avec ce modèle d'article. Je vais juste rajouter une ligne ici pour ne plus avoir
00:00:35 :le surlignement de PyCharm, et sur cette vue on va rajouter un attribut qu'on n'a pas eu sur lesautres classes qui est SuccessURL. Donc ça c'est tout simplement l'URL vers laquelle on souhaite
00:00:46 :rediriger une fois qu'on a supprimé un article de notre blog. Donc là je vais utiliser unefonction qui est ReverseLazy. Donc ReverseLazy, elle va nous permettre de récupérer un chemin
00:00:57 :d'URL à partir de son nom. Donc dans ce cas-ci on va rediriger vers la page d'accueil, donc on vamettre post.home. Donc n'oubliez pas ici l'espace de nommage de notre application, et on va aller
00:01:07 :importer cette fonction ici tout en haut de mon fichier. Donc je vais faire from Django.urls importReverseLazy. Donc pourquoi on utilise dans ce cas-ci ReverseLazy et pas juste Reverse? Parce
00:01:18 :qu'au moment où la classe va être mise en mémoire, Django n'aura pas résolu les cheminsd'URL. Et donc si on utilise tout simplement Reverse, on va avoir une erreur qui est assez
00:01:27 :incompréhensible. Donc pour utiliser le Reverse, quand on est dans ce contexte-ci, donc dans lecontexte d'un attribut d'une classe, on va devoir utiliser à la place ReverseLazy. Donc ça c'est
00:01:39 :un petit truc à savoir, si vous n'utilisez pas vous allez voir, vous aurez une erreur qui nefait pas vraiment de sens, qui est assez dure à débugger. Donc voilà, utilisez ReverseLazy à la
00:01:47 :place de Reverse. On va ensuite donc créer à l'intérieur de notre fichier de template, donc denotre dossier poste ici, un fichier qui va nous permettre de valider si oui ou non on souhaitesupprimer un article. Donc le nom du template ça va être le nom du modèle tout en minuscules,
00:02:02 :tiré du bas confirm, tiré du bas delete.html. Donc on va utiliser le nom auquel Django s'attend,on ne va pas le changer. Donc on pourrait le changer bien entendu en utilisant template name,
00:02:13 :mais dans ce cas-ci ça me convient bien, c'est assez explicite, blog post confirm delete. Doncje vais laisser ça. Dans ce fichier qu'est-ce qu'on va mettre ? Et bien là encore on va étendre la
00:02:22 :base html, donc le fichier de base. On va rajouter dans le content, donc là on a oublié la balise detitre, je vais juste la rajouter, bloc title. On va mettre donc notre titre et on va mettre
00:02:32 :voulez-vous, on va mettre juste suppression, supprimer un article dans le titre et on vafermer notre bloc ici, end block, comme ceci. Ensuite on a notre contenu, donc dans le contenu
00:02:42 :on met un formulaire avec tout simplement une question, après le csrf token bien entendu,êtes-vous sûr de vouloir supprimer object ? Donc là on met object puisqu'on n'a pas spécifié de
00:02:52 :context object name, donc on pourrait pour être un peu plus explicite le spécifier. Donc je colleça ici, je le mets là et dans ce cas-ci on pourrait utiliser post à la place de object.
00:03:00 :Donc à la place de object ici je vais mettre post, on pourrait même mettre post.title,mais comme à l'intérieur de notre modèle on avait mis, donc si on va voir dans models.py dans
00:03:09 :le string ici on retourne le titre, automatiquement si on affiche post ici ça va nous retourner letitre. Donc c'est à vous de voir ce que vous préférez, soit vous êtes très explicite et
00:03:17 :vous le mettez ici, soit vous faites juste afficher le post et de base avec la méthode string ça varetourner le titre. Donc on nous demande si on est sûr de vouloir supprimer le titre de l'article
00:03:25 :en question et ensuite on a un bouton submit qui va nous permettre de soumettre le formulaire etde le supprimer. Donc il ne nous reste plus qu'à créer l'url, donc je vais retourner dans mon
00:03:35 :fichier urls.py et on va rajouter notre vue pour supprimer l'article. Donc à la suite ici de mesimports je vais importer bloc post delete et on va copier une de nos lignes ici. Donc on va prendre
00:03:46 :la dernière ligne edit et à la place de edit on va mettre delete. On a là encore besoin de récupérerle slogue bien entendu puisqu'on veut savoir en fait quel post on va devoir supprimer. Donc je
00:03:57 :mets à la place de update ma vue delete et ici à la place de edit je mets delete et je n'oubliepas la virgule pour séparer les différents chemins. Je vais la rajouter en fait directement
00:04:05 :à la suite comme ça si jamais vous copiez, collez d'autres lignes comme ceci vous voyez qu'on n'aurapas besoin de la rajouter à chaque fois elle sera déjà là. Donc là on a notre vue delete et on va
00:04:13 :donc essayer d'aller supprimer cet article. Donc là je suis sur mon cinquième article et avant leslogue je vais mettre delete et je valide et là on arrive bien sur cette vue qui nous demande sion est sûr de vouloir supprimer l'article en question. Donc là un cinquième article c'est
00:04:26 :bien l'article auquel on accède ici. Je vais cliquer sur oui supprimer et là ça va supprimermon article et me rediriger automatiquement vers la vue d'accueil de notre blog. Donc voilà
00:04:36 :tout ce qu'il suffit de faire pour la vue de suppression d'un article. Donc là encore trèssimilaire à ce qu'on a vu auparavant et vous voyez maintenant qu'on a toutes les étapes. On a le
00:04:45 :create view, le update view, le detail view et le delete view. Donc on a toutes nos opérations quinous permettent de créer, de récupérer, de mettre à jour et de supprimer des entrées dans notre basede données. Tout ça avec uniquement ces quelques lignes de code ici donc au final vous voyez que
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.