134 votes

Supprimer plusieurs objets dans django

J'ai besoin de sélectionner plusieurs objets à supprimer de ma base de données dans django en utilisant une page web. Comme il n'y a pas de catégorie à sélectionner, je ne peux pas supprimer tous les objets de cette manière. Dois-je implémenter mon propre formulaire de suppression et le traiter dans Django ou est-ce que Django a déjà un moyen de le faire ? Comme il est implémenté dans l'interface d'administration.

298voto

Matt Luongo Points 4671

Vous pouvez supprimer n'importe quel QuerySet que vous voulez. Par exemple, pour supprimer tous les articles de blog avec un certain modèle de poste

Post.objects.all().delete()

et de supprimer tout message dont la date de publication est ultérieure.

Post.objects.filter(pub_date__gt=datetime.now()).delete()

Vous devez cependant trouver un moyen de restreindre votre ensemble de requêtes. Si vous voulez simplement qu'une vue supprime un objet particulier, regardez du côté de la fonction supprimer la vue générique .

EDITAR:

Désolé pour le malentendu. Je pense que la réponse est quelque part entre les deux. Pour réaliser la vôtre, combinez ModelForm et vues génériques . Sinon, recherchez des applications tierces qui offrent des fonctionnalités similaires. Dans un Question connexe La recommandation est la suivante django-filtre .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X