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.
Réponse
Trop de publicités?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 .