- 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 :Actuellement, dans notre interface, on affiche les informations de nos modèles,mais on ne peut pas les éditer directement sur cette page.Par exemple ici, le statut de publication de chaque article est indiqué,mais je ne peux pas le changer.
00:00:13 :Donc si je veux par exemple publier ces trois derniers articles,il faut que j'aille cliquer sur chaque article,que je change le statut de published,que je sauvegarde, etc.
00:00:21 :Donc ce n'est pas très pratique,et moi j'aimerais bien pouvoir faire cette modification directement depuis cette page.Pour ça, on va pouvoir rajouter un attribut dans notre classe BlogPostAdmin.
00:00:31 :Cet attribut, il va s'appeler ListEditable,et on va indiquer les champs que l'on souhaite rendre disponibles pour édition.Donc je vais mettre un tuple,et je vais spécifier par exemple que je veux pouvoir éditer le champ Published.
00:00:44 :Alors attention ici, même si vous n'avez qu'un seul champ,pour que ce soit bien compris comme un tuple,il faut mettre une virgule à la suite.
00:00:51 :Donc si vous avez une seule chaîne de caractère,vous mettez quand même une virgule,et comme ça Python comprendra que c'est bien un tuple,et non pas simplement une chaîne de caractère.
00:00:58 :Donc si je reviens sur mon interface et que j'actualise,vous voyez que maintenant j'ai bien une case que je peux cocher ou décocher,directement sur cette page.
00:01:07 :Je peux également sauvegarder mes changements en cliquant sur le bouton Save.Donc si je veux changer l'état de publication de ces trois articles,je n'ai qu'à cocher ces cases,cliquer sur Save,et là automatiquement ces trois articles sont avec un statut Publié.
00:01:20 :Donc vous voyez que c'est très pratique,et on peut faire ça sur tous les champs qu'on a d'affichés ici.Donc bien sûr il faut que le champ soit disponible dans ListDisplay.
00:01:27 :Si j'essaie de renseigner un champ ici dans ListEditable,qui n'est pas dans ListDisplay,j'aurai une erreur.Également si vous essayez de rendre éditable le premier champ de votre modèle,vous aurez une erreur.
00:01:37 :Donc je vais vous montrer ce que ça donne.Si je mets Title ici pour pouvoir l'éditer directement sur la page,que je reviens sur mon interface et que j'actualise,vous voyez que ça ne fonctionne plus,et si je reviens sur PyCharm pour voir l'erreur que j'ai,on nous dit que la valeur de ListEditable réfère au premier field dans ListDisplay,
00:01:53 :donc au titre ici,qui ne peut pas être utilisé à moins que l'on spécifie ListDisplayLinks.Donc ListDisplayLinks en fait ça va spécifier quel champ on peut utiliserpour accéder à la page d'administration de chaque entrée de ma base de données.
00:02:08 :Donc si je fais ListDisplayLinks qui est égal par exemple à la date,donc là encore n'oubliez pas de mettre la virgule aprèspour que ce soit bien compris comme un tuple.
00:02:16 :Donc là je mets la date dans ListDisplayLinks,je reviens ici sur ma page,donc je vais juste relancer avant mon serveur pour que ça fonctionne.
00:02:24 :Donc là je n'ai plus d'erreur,et si je reviens sur la page d'administration,vous voyez que cette fois-ci on peut bien éditer le titre directement,et logiquement on ne peut plus cliquer sur le titre pour accéder aux articles,mais ce n'est pas grave puisque maintenant je peux passer par la date.
00:02:38 :Donc là vous voyez que maintenant le champ de la date est cliquable,donc je peux cliquer sur la date et ça va m'amener automatiquementvers la page d'édition de chaque article.
00:02:46 :Donc c'est vraiment pour ça qu'il faut spécifier ListDisplayLinks icisi jamais vous renseignez le premier champ de ListDisplay dans ListEditable,puisque vous ne pourrez plus cliquer sur ce champ pour accéder à la page.
00:02:58 :Et ici on peut mettre bien sûr plus qu'un seul champ,donc par exemple je pourrais mettre Slug ici,et revenir sur la page, j'actualise,et là je peux également accéder à la page de chaque article en cliquant sur le Slug.
00:03:09 :Par contre si je reviens dans ListEditable ici et que je mets le Slug,et que je reviens sur la page d'administration,là vous voyez que j'ai encore une erreur puisque logiquementje ne peux pas avoir le même champ dans ListEditable et dans ListDisplayLinks.
00:03:22 :Et si je viens voir ici, c'est exactement ce que ça me dit,the value of Slug cannot be in both ListEditable and ListDisplayLinks.Donc si vous avez un champ ici qui vous permet d'accéder à la page,vous ne pouvez bien entendu pas le rendre éditable.
00:03:35 :Donc si je l'enlève de ListDisplayLinks, je remets la virgule ici,je reviens sur l'interface d'administration,donc en relançant mon serveur, je reviens ici, j'actualise,là vous voyez qu'on peut bien modifier le Slug,et logiquement on ne peut pas l'utiliser pour cliquer sur le Slugpour accéder à la page de chaque article.
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.