Programing

Django를 사용하여 테이블의 모든 데이터를 제거하는 방법

lottogame 2020. 8. 26. 08:21
반응형

Django를 사용하여 테이블의 모든 데이터를 제거하는 방법


두 가지 질문이 있습니다.

  1. Django에서 테이블을 어떻게 삭제합니까?
  2. 테이블의 모든 데이터를 어떻게 제거합니까?

이것은 성공적이지 않은 내 코드입니다.

Reporter.objects.delete()

관리자 내부 :

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/


Django 1.11 데이터베이스 테이블에서 모든 개체 삭제-

Entry.objects.all().delete()  ## Entry being Model Name. 

- 아래 인용 여기 공식 장고 문서를 참조하십시오 https://docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects

delete ()는 Manager 자체에 노출되지 않는 유일한 QuerySet 메서드입니다. 이것은 실수로 Entry.objects.delete ()를 요청하고 모든 항목을 삭제하는 것을 방지하는 안전 메커니즘입니다. 모든 개체를 삭제하려면 전체 쿼리 집합을 명시 적으로 요청해야합니다.

나는 내 아래에 보이는 코드 스 니펫을 시도했다. 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" 

ADMIN 콘솔로 이동하지 않고 이미 삭제 된 모델의 개체를 확인하려고 시도하면 Django 앱이 의도 한대로 작동합니다.

장고 관리자 화면 캡처


몇 가지 방법이 있습니다.

To delete it directly:

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

To delete it from an instance:

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

// don't use same name

참고URL : https://stackoverflow.com/questions/4532681/how-to-remove-all-of-the-data-in-a-table-using-django

반응형