Предыдущая часть.
Что бы удалить объект из базы — достаточно просто вызвать метод delete()
:
In [34]: p = Publisher.objects.get(name="O'Reilly") In [35]: p.delete() In [36]: Publisher.objects.all() Out[36]: [<Publisher: Apress>, <Publisher: Apress Publishing>]
Вы так же можете удалить группу объектов с помощью того же метода delete()
. Такое действие схоже с update()
, которое мы рассматривали в предыдущей части:
In [37]: Publisher.objects.filter(country='USA').delete() In [38]: Publisher.objects.all().delete() In [39]: Publisher.objects.all() Out[39]: []
Будьте острожны с удалением данных. В качестве меры предосторожни перед удалением всех данных в таблице — Django требует явного указания all()
. Например, такой код не будет работать:
In [40]: Publisher.objects.delete() --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-40-36faaf1974de> in <module>() ----> 1 Publisher.objects.delete() AttributeError: 'Manager' object has no attribute 'delete'
Но сработает, если вы добавите метод all()
:
In [41]: Publisher.objects.all().delete()
Если вы хотите удалить какой-то набор данных — вам не требуется использовать all()
:
In [41]: Publisher.objects.filter(country='USA').delete()
Конец третьей главы.