[python] Django 모델에서 레코드를 삭제하는 방법은 무엇입니까?

특정 레코드를 삭제하고 싶습니다. 와 같은

delete from table_name where id = 1;

에서 어떻게 할 수 django model있습니까?



답변

몇 가지 방법이 있습니다.

직접 삭제하려면 :

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

인스턴스에서 삭제하려면 :

instance = SomeModel.objects.get(id=id)
instance.delete()


답변

MyModel.objects.get(pk=1).delete()

지정된 기본 키를 가진 객체가 없으면 지정된 객체를 검색하려고 시도하기 때문에 예외가 발생합니다.

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

지정된 기본 키를 가진 객체가 존재하지 않고 직접 쿼리를 생성하는 경우 예외가 발생하지 않습니다.

DELETE FROM my_models where id=1


답변

하나의 항목을 삭제하려는 경우

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

예를 들어 Wishlist의 모든 항목을 삭제하려면

Wishlist.objects.all().delete()


답변

하나의 인스턴스를 삭제하려면 코드를 작성하십시오.

delet= Account.objects.get(id= 5)
delet.delete()

모든 인스턴스를 삭제하려면 코드를 작성하십시오

delet= Account.objects.all()
delete.delete()


답변

Wolph는 좋은 답변 중심의 코드를 제공했습니다. 사람들의 참고를 위해 공식 문서를 여기에 붙여 드리겠습니다 .


답변