Mam dwa pytania:
- Jak usunąć tabelę w Django?
- Jak usunąć wszystkie dane z tabeli?
Oto mój kod, który się nie powiódł:
Reporter.objects.delete()
python
django
django-queryset
zjm1126
źródło
źródło
Odpowiedzi:
Wewnątrz menedżera:
źródło
'DELETE FROM %s' % (table_name, )
tego kawałka, pozostawiając stół pusty, ale nietknięty.Zgodnie z najnowszą dokumentacją prawidłową metodą wywołania byłoby:
źródło
delete
wywoływana jest metoda instancji , podczas gdy przydelete
wywołaniuQuerySet
nie jest.Jeśli chcesz usunąć wszystkie dane ze wszystkich tabel, możesz wypróbować polecenie
python manage.py flush
. Spowoduje to usunięcie wszystkich danych w tabelach, ale same tabele nadal będą istnieć.Zobacz więcej tutaj: https://docs.djangoproject.com/en/1.8/ref/django-admin/
źródło
Używając powłoki,
1) Aby usunąć tabelę:
2) Aby usunąć wszystkie dane z tabeli:
źródło
Django 1.11 usuwa wszystkie obiekty z tabeli bazy danych -
Zapoznaj się z oficjalną dokumentacją Django, jak podano poniżej - https://docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects
Należy zauważyć, że metoda delete () jest jedyną metodą QuerySet, która nie jest ujawniana w samym menedżerze. Jest to mechanizm bezpieczeństwa, który zapobiega przypadkowemu zażądaniu Entry.objects.delete () i usunięciu wszystkich wpisów. Jeśli chcesz usunąć wszystkie obiekty, musisz jawnie zażądać pełnego zestawu zapytań:
Sam wypróbowałem fragment kodu widoczny poniżej w moim
somefilename.py
a wewnątrz
views.py
mam widok, który po prostu renderuje stronę html ...zakończyło usuwanie wszystkich wpisów z - model == model_4, ale teraz widzę ekran błędu w konsoli administracyjnej, gdy próbuję stwierdzić, że wszystkie obiekty modelu_4 zostały usunięte ...
Weź pod uwagę, że - jeśli nie przejdziemy do konsoli ADMIN i nie spróbujemy zobaczyć obiektów modelu - które zostały już usunięte - aplikacja Django działa tak, jak powinna.
zrzut ekranu administratora django
źródło
Jest kilka sposobów:
Aby usunąć go bezpośrednio:
Aby usunąć go z instancji:
// nie używaj tej samej nazwy
źródło