- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette vidéo on va voir la dernière classe qui nous intéresse, dans ce cas-ci la classeDeleteView qui va nous permettre de supprimer une instance de notre base de données. Donc ça
00:00:08 :devrait être un peu plus court que pour les autres vues, vous allez voir c'est assez rapide. Donc onva déjà créer notre classe, donc on va l'appeler BlockPostDeleteView et on va hériter de DeleteView.
00:00:18 :Donc DeleteView qui, à l'encore, est disponible dans django.views.generic, donc vous l'importezici en haut de votre fichier. On crée notre classe donc qui hérite de DeleteView et là on va avoir
00:00:28 :presque la même chose que pour toutes nos autres classes, c'est à dire qu'on va spécifier lemodèle, on va dire donc qu'il est égal à BlockPost, on va spécifier le template puisque par défaut ilva nous rediriger vers un template que l'on n'a pas créé et nous dans notre projet ici on a un
00:00:42 :template qui s'appelle DeletePost. Donc nous on va utiliser ce template à la place. Avant ça,comme d'habitude, je vais donc mettre dans mon fichier d'URL la vue donc de cette classe,donc je vais dans urls.py et là je vais créer une nouvelle URL, je vais cette fois-ci l'appeler
00:00:55 :Delete et on va mettre notre classe BlockPostDelete, on l'importe ici bien entendu et làà la place de BlockPostEdit je vais mettre BlockPostDelete. Donc pour l'instant je n'ai aucun
00:01:06 :moyen de supprimer donc je vais aller sur mon article, là j'ai modifié l'article, on va rajouterdonc sur notre article qui est dans post.html ici un lien pour pouvoir supprimer notre article. Donc
00:01:17 :je vais rajouter ici, je vais copier ça, je vais le rajouter à la suite et là plutôt queBlockPostEdit on va mettre BlockPostDelete et on va mettre ici supprimer l'article. Donc là si
00:01:28 :j'actualise, j'ai bien supprimé l'article et si je clique ici sur supprimer l'article, on a commed'habitude cette erreur et vous voyez que le nom du template dans ce cas-ci c'est donc le modèletout en minuscule avec confirm delete à la fin. Donc nous on va changer ce template pour mettre
00:01:43 :à la place DeletePost.html. Donc vous commencez à connaître la chanson, on met template name eton met que c'est égal donc dans ce cas-ci à blog.deletepost.html. Donc si je reviens ici et
00:01:54 :que j'actualise, on a bien donc notre page qui s'affiche. Alors dans cette page qu'est-ce qu'ona ? Bah là pas grand chose, si je vais dans deletepost.html vous voyez qu'on a un formulaire,
00:02:03 :donc encore une fois un formulaire avec une méthode post, on a notre csrf token bien entenducomme dans tous les formulaires et j'ai juste rajouté ici une phrase qui me demande si jesouhaite supprimer l'article et on a enfin un bouton supprimer pour envoyer le formulaire.
00:02:17 :A l'intérieur de cette page ici vous allez pouvoir accéder à votre objet, donc l'objetque vous souhaitez modifier, soit en utilisant donc le nom du modèle tout en minuscule soitlà encore avec object, donc de la même façon que dans les vues de détails on a cette variableobject qui fait référence à l'objet actuel, donc l'objet qu'on est en train de vouloir supprimer.
00:02:36 :Donc là si j'actualise vous voyez qu'on a bien le titre de l'article qui est affiché,donc vous pouvez mettre object ou blog post et si vous souhaitez mettre autre chose comme avecles autres vues, donc comme ce qu'on avait fait dans la vue ici de listview et de detailview,
00:02:49 :on avait changé le context object name, donc on peut faire cette même opération ici dans la vuede delete, voilà si jamais vous souhaitez modifier le nom, donc on peut mettre post par exemple danscontext object name et ça va me permettre d'utiliser post à la place ici dans ma variable.
00:03:04 :Donc là je mets post, post.title, j'actualise et là ça fonctionne de la même façon.Maintenant si je souhaite donc supprimer l'article, je clique sur supprimer et là on a une erreurpuisqu'on n'a pas mis de success URL, donc par défaut il ne sait pas où il doit redirigerl'utilisateur, donc on va faire comme on l'avait fait sur je crois une méthode précédente, voilà
00:03:23 :on avait spécifié le get success URL, donc dans ce cas-ci je peux mettre également un success URLdirectement dans le deleteview, donc ici je peux mettre success URL et si vous vous souvenez bienavec success URL on ne peut pas utiliser reverse, donc il faut utiliser à la place reverse lazy
00:03:39 :pour indiquer où on souhaite rediriger l'utilisateur. Donc moi dans ce cas-ci je vais le rediriger versla page d'index du blog, donc reverse lazy qui est une fonction disponible dans django.urls et on
00:03:49 :est obligé d'utiliser reverse lazy puisque à ce stade-ci quand on a notre classe qui est définieon n'a pas encore la résolution des chemins d'URL qui a été effectuée et donc si on utilise reverseon va avoir une erreur. Donc là je reviens en arrière, j'actualise ma page, je vais cliquer
00:04:04 :sur supprimer et là on est bien redirigé automatiquement vers ma page d'accueil, je vaisvous montrer en supprimant ces deux autres articles par exemple, donc supprimer l'article, supprimeret là vous voyez que petit à petit on supprime les articles de notre base de données, je vaissupprimer celui-là également, donc supprimer l'article et là à chaque fois vous voyez qu'ils
00:04:20 :n'apparaissent plus dans la vue et si je retourne voir dans ma base de données et que j'actualise,là j'ai bien donc uniquement ces quatre articles qui restent dans ma base de données. Donc voilà
00:04:28 :pour cette vue d'e-readview, là encore vous voyez que c'est assez similaire aux autres et que trèsrapidement on peut avoir cette récupération automatique de notre objet en spécifiant lemodèle sur lequel on souhaite travailler, en ayant une URL avec le slog ici qui nous permetde récupérer le bon modèle et après le reste est vraiment exactement comme sur toutes les autres
00:04:47 :vues, on a notre template, on peut changer le nom de l'objet dans le contexte et on peut redirigeravec le success URL. Donc là encore n'hésitez pas à aller voir dans la documentation si vous voulez
00:04:57 :en savoir plus, si vous allez par exemple dans delete view ici, vous allez voir tout ce que vouspouvez faire avec cette classe et on retrouve ici notamment le formulaire qui est très similaire àce que j'avais donc le formulaire avec la méthode post, le token, la petite phrase pour nous demander
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.