web-dev-qa-db-ja.com

Djangoモデルのレコードを削除する方法は?

特定のレコードを削除したい。といった

delete from table_name where id = 1;

Django modelでこれを行うにはどうすればよいですか?

197
user426795

いくつかの方法があります。

直接削除するには:

SomeModel.objects.filter(id=id).delete()

インスタンスから削除するには:

instance = SomeModel.objects.get(id=id)
instance.delete()
409
Wolph
MyModel.objects.get(pk=1).delete()

指定された主キーを持つオブジェクトが存在しない場合、最初に指定されたオブジェクトを取得しようとするため、例外が発生します。

MyModel.object.filter(pk=1).delete()

指定された主キーを持つオブジェクトが存在せず、クエリを直接生成する場合、これは例外を発生させません

DELETE FROM my_models where id=1
13
Milad Kh

ウォルフは、コードに焦点を当てた良い答えを提供しました。公式の doc をここに貼り付けてください。

4
VicX

1つのアイテムを削除する場合

wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()

たとえば、ウィッシュリストのすべてのアイテムを削除する場合

Wishlist.objects.all().delete()
1
lilhamad