5 ответов:
в диспетчере:
def delete_everything(self): Reporter.objects.all().delete() def drop_table(self): cursor = connection.cursor() table_name = self.model._meta.db_table sql = "DROP TABLE %s;" % (table_name, ) cursor.execute(sql)
согласно последнему документация правильный метод для вызова такой:
Reporter.objects.all().delete()
Если вы хотите удалить все данные из всех ваших таблиц, вы можете попробовать команду
python manage.py flush. Это приведет к удалению всех данных из таблиц, а сами таблицы будут существовать.подробнее здесь: https://docs.djangoproject.com/en/1.8/ref/django-admin/
Джанго 1.11 удалить все объекты из таблицы базы данных -
Entry.objects.all().delete() ## Entry being Model Name.обратитесь к официальной документации Django здесь, как указано ниже - https://docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects
обратите внимание, что delete() является единственным методом QuerySet, который не представлен в самом менеджере. Это механизм безопасности, чтобы предотвратить вас от случайного запроса входа.объекты.удалить () и удалить все записи. Если вы хотите удалите все объекты, затем вы должны явно запросить полный набор запросов:
Я сам попробовал фрагмент кода, увиденный ниже в моем
somefilename.py# for deleting model objects from django.db import connection def del_model_4(self): with connection.schema_editor() as schema_editor: schema_editor.delete_model(model_4)и в моем
views.pyу меня есть представление, которое просто отображает html-страницу ...def data_del_4(request): obj = calc_2() ## obj.del_model_4() return render(request, 'dc_dash/data_del_4.html') ##он закончил удаление всех записей из-model == model_4 , но теперь я вижу экран ошибки в консоли администратора, когда я пытаюсь установить, что все объекты model_4 были удалены ...
ProgrammingError at /admin/dc_dash/model_4/ relation "dc_dash_model_4" does not exist LINE 1: SELECT COUNT(*) AS "__count" FROM "dc_dash_model_4"подумайте об этом - если мы не перейдем в консоль администратора и не попробуем увидеть объекты модели, которые уже были удалены, приложение Django работает так, как предполагалось.
есть несколько способов:
, чтобы удалить его напрямую:
SomeModel.objects.filter(id=id).delete(), чтобы удалить его из примера:
instance1 = SomeModel.objects.get(id=id) instance1.delete()// Не используйте одно и то же имя
Comments