Django でモデルのレコードを削除する

Vaibhav Vaibhav 2021年7月18日 2021年6月29日
Django でモデルのレコードを削除する

Django は、フルスタックアプリケーションを非常に迅速に構築できるようにする多用途のフレームワークです。Django は、すべての Web アプリケーションに関連する複雑でコアなタスクのほとんどを効率的に処理するため、開発者はそれらを最初から作成する必要がありません。

幸い、Django はデータベースを魅力のように扱い、データベースとの対話を非常に簡単にします。生の SQL クエリは Django で記述できますが、Python を使用してデータベースやテーブルを操作できます。Python を使用してデータベースに対して CRUD 操作を非常に迅速に効率的に実行できます。

この記事では、CRUD 操作の削除機能を紹介し、Django でモデルのレコードを削除する方法を示します。

Django の delete() メソッドを使用してモデルのレコードを削除する

Django のすべてのモデルオブジェクトまたはインスタンスには、そのレコードを削除するために使用できる delete() メソッドがあります。現在、この delete() メソッドを使用して、単一のレコードとそれらの束を削除することもできます。

1つのレコードを削除するには、次のコードを使用します。

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

get() メソッドは、id が 25 のレコードをフェッチしてから、それを削除します。ただし、レコードが見つからない場合は、例外が発生します。これを回避するには、次のように try...except ブロックを使用できます。

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

すべてのレコードを削除する必要がある場合は、すべてのレコードを含む QuerySet でこの delete() 関数を呼び出すことができます。以下のコードは同じ操作を実行します。

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

上記のように、この delete() 関数を QuerySet で呼び出すことができます。これは、フィルタリングされたレコードの QuerySet でこの関数を呼び出すこともできることを意味します。同じ出力については、次のコードを参照してください。

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.

LinkedIn GitHub

関連記事 - Django Model