Как удалить все данные в таблице с помощью Django



У меня есть два вопроса:




  1. как удалить таблицу в Django

  2. как удалить все данные в таблице


Это мой код, но не удачная :



Reporter.objects.delete()
2773   5  

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 работает так, как предполагалось.

Django admin screencapture

есть несколько способов:

, чтобы удалить его напрямую:

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

, чтобы удалить его из примера:

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

// Не используйте одно и то же имя

Comments

    Ничего не найдено.