Supprimer proprement¶
Objectif : supprimer une image sans laisser de trace — ni ligne en base, ni fichier orphelin, ni variante oubliée.
Ce que vous allez apprendre : supprimer une image, c'est supprimer trois
choses : la ligne media, le fichier original et ses variantes.
delete_media(..., delete_files=True) fait les trois en une opération.
Deuxième palier du niveau avancé de la progression images.
Module opt-in et table media
Ce starter suppose forge-mvc-images installé (palier « Installation ») et
la table media appliquée (forge migration:apply). Si elle manque, la
page reste pédagogique.
Ce que ce starter montre¶
- la liste des images avec un bouton Supprimer par image ;
- la suppression atomique (ligne + fichier + variantes) avec
delete_media; - un repli pédagogique si la table
median'existe pas.
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_images.delete_media |
Supprimer ligne + fichier + variantes. | Médias |
forge_mvc_images.list_media_for_entity |
Lister les images à supprimer. | Médias |
Tester¶
Ouvrez https://localhost:8000/image-delete et supprimez une image : sa ligne et
ses fichiers disparaissent ensemble.
Le contrôleur¶
# mvc/controllers/image_delete_controller.py
from forge_mvc_images import delete_media, list_media_for_entity
class ImageDeleteController(BaseController):
@staticmethod
def delete(request: Request) -> Response:
media_id = request.form("media_id")
delete_media(int(media_id), delete_files=True)
# … puis ré-affichage de la liste
Comprendre ce code¶
delete_files=Trueest ce qui distingue une suppression propre d'une simple suppression de ligne : sans lui, le fichier et ses variantes resteraient sur le disque.delete_mediaest idempotent : supprimer un média déjà absent ne lève pas d'erreur, il renvoie un compte rendu.- On supprime par identifiant
media_id: une opération ciblée, jamais en masse.
À retenir¶
- Une suppression propre retire la ligne et les fichiers (original + variantes).
delete_media(delete_files=True)couvre les trois en une fois.- Laisser des fichiers orphelins est une dette silencieuse — Forge l'évite.
Après ce starter¶
La suppression est propre. Dernier palier : la garde de sécurité à l'upload.