Supprimer un enregistrement d'un modèle dans Django

Vaibhav Vaibhav 18 juillet 2021
Supprimer un enregistrement d'un modèle dans Django

Django est un framework polyvalent qui nous permet de créer très rapidement des applications full-stack. Django gère efficacement la plupart des tâches complexes et principales associées à toutes les applications Web afin que les développeurs n’aient pas à les écrire à partir de zéro.

Heureusement, Django gère les bases de données comme un charme et rend très simple l’interaction avec elles. Bien que les requêtes SQL brutes puissent être écrites dans Django, cela nous permet d’interagir avec la base de données et les tables à l’aide de Python - nous pouvons effectuer efficacement des opérations CRUD sur des bases de données à l’aide de Python très rapidement.

Dans cet article, nous présenterons la fonction de suppression de l’opération CRUD et montrerons comment supprimer un enregistrement d’un modèle dans Django.

Supprimer un enregistrement d’un modèle à l’aide de la méthode delete() dans Django

Tous les objets ou instances du modèle dans Django ont une méthode delete(), qui peut être utilisée pour supprimer cet enregistrement. Désormais, cette méthode delete() peut également être utilisée pour supprimer un seul enregistrement et plusieurs d’entre eux.

Pour supprimer un seul enregistrement, nous utiliserons le code suivant :

record = ModelName.objects.get(id=25)
record.delete()

La méthode get() récupère l’enregistrement avec l’id de 25, puis le supprime. Mais si l’enregistrement n’est pas trouvé, il lève une exception. Pour éviter cela, nous pouvons utiliser un bloc try...except comme suit :

try:
    record = ModelName.objects.get(id=25)
    record.delete()
    print("Record deleted successfully!")
except:
    print("Record doesn't exists")

Si nous devons supprimer tous les enregistrements, nous pouvons appeler cette fonction delete() sur un QuerySet contenant tous les enregistrements. Le code ci-dessous effectue la même opération :

records = ModelName.objects.all()
records.delete()

Comme mentionné ci-dessus, nous pouvons appeler cette fonction delete() sur un QuerySet ; cela signifie que nous pouvons également appeler cette fonction sur un QuerySet de certains enregistrements filtrés. Reportez-vous au code suivant pour la même sortie :

records = ModelName.objects.filter(firstName="Vaibhav")
records.delete()
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Django Model