Djangoでモデルを作成し、デバッグなどするためにいろいろとデータを入れているとどんどんたまっていきます。
その場合通常は、管理画面(http://127.0.0.1:8000/admin)からまとめて削除などしていたのですが、入力したデータをしくじると管理画面でなぜか削除できないことがありました。
その場合、他の方法で削除をしないといけないこととなったのですが、プログラム側から削除することができたので備忘録も兼ねて書き残しておきます。
目次
1.モデルのレコード(オブジェクト)全件削除する方法
あるモデルで生成したレコード(オブジェクト)を全件削除する場合には、モデル側の関数delete()を使用します。
使用例として、ModelAというモデルのレコード(オブジェクト)を全件削除する場合にはviews.py内で以下のように記述します。
views.py
ModelA.objects.all().delete()
これで、ModelA内のレコード(オブジェクト)が全件削除されます。
また、条件を指定してそれに合ったものだけを削除する場合には、filter()を使用します。
2.ある特定のレコード(オブジェクト)のみ削除する方法
先程と同様にModelAのレコード(オブジェクト)で、条件としてid=1のものだけを削除する場合には以下のように記述します。
views.py
ModelA.objects.filter(id=1).delete()
同様にModelAのレコード(オブジェクト)で、条件としてname="abc"のものだけを削除する場合には以下のように記述します。
views.py
ModelA.objects.filter(name="abc").delete()
また、get()を使用して以下のようにフェッチしてからdelete()することもできますが、この場合、存在しなかった時はDoesNotExistのエラーが発生するので注意が必要です。
views.py
ModelA.objects.get(name="abc").delete()
関連記事:
【Django】Djangoでのhtml(javascript)側からpython(views.py)側へ値を送る時の方法の一例 - Django Girls and Boys 備忘録
【Django】モデル内のレコード(オブジェクト)を削除する方法 - Django Girls and Boys 備忘録
【Django】モデルのデータ変更時のマイグレーション方法 - Django Girls and Boys 備忘録
【Django】モデルのインスタンス生成時のエラー情報(invalid literal for int() with base 10:) - Django Girls and Boys 備忘録
【Python】「文字列として受け取ったリスト」をリストに復元した時の対処方法、変換方法 - Django Girls and Boys 備忘録
【Git】Gitのダウンロード、インストール方法 - Django Girls and Boys 備忘録
【Git GitHub】初心者、初級者におすすめの入門書 - Django Girls and Boys 備忘録
【Python Django】git init について - Django Girls and Boys 備忘録
【Git】ユーザー名とメールアドレスの設定方法 - Django Girls and Boys 備忘録
【Git】git addとステージングエリア(インデックス)への登録について - Django Girls and Boys 備忘録
【Git】git commitとローカルリポジトリへの登録、gitの概略イメージ - Django Girls and Boys 備忘録
【Git GitHub】GitHubのアカウント作成方法 - Django Girls and Boys 備忘録
【Git GitHub】公開鍵の設定方法 - Django Girls and Boys 備忘録
【Git GitHub】Gitのダウンロード、インストールから「git add」、「git commit」によるGitへの登録までの一通りの方法 - Django Girls and Boys 備忘録
【Git GitHub】「git add」、「git commit」後の「git push」について、リモートリポジトリにプッシュする方法 - Django Girls and Boys 備忘録
【Git GitHub】プルリクエストとマージを実行する方法 - Django Girls and Boys 備忘録
【Git GitHub】リモートリポジトリをクローンする方法 - Django Girls and Boys 備忘録