Для удаления объектов следует использовать метод
delete()
:
>>> p = Publisher.objects.get(name="O'Reilly")
>>> p.delete()
>>> Publisher.objects.all()
[<Publisher: Apress Publishing>]
Вы также можете удалять сразу несколько объектов, для этого надо
вызвать метод delete()
объекта
QuerySet
. Эта методика аналогична
использованию метода update()
, описанному в
предыдущем разделе:
>>> Publisher.objects.filter(country='USA').delete()
>>> Publisher.objects.all().delete()
>>> Publisher.objects.all()
[]
Будьте осторожны во время удаления своих данных! В качестве меры
предосторожности против случайного удаления всех данных в
таблице Django требует явного использования метода
all()
для удаления
всех записей таблицы. Этот пример не
сработает:
>>> Publisher.objects.delete()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Manager' object has no attribute 'delete'
Но сразу станет работать, если вы добавите метод
all()
:
>>> Publisher.objects.all().delete()
Если вам потребуется удалить выделенный набор записей, в таком
случае не требуется использовать метод
all()
. Повторим предыдущий пример:
>>> Publisher.objects.filter(country='USA').delete()
Пред. | Уровень выше | След. |
Выборка объектов | Начало | Глава 6. Интерфейс администратора Django |
0 comments | Make a comment