Ich habe zwei Fragen:
- Wie lösche ich eine Tabelle in Django?
- Wie entferne ich alle Daten in der Tabelle?
Dies ist mein Code, der nicht erfolgreich ist:
Reporter.objects.delete()
python
django
django-queryset
zjm1126
quelle
quelle
Antworten:
In einem Manager:
quelle
'DELETE FROM %s' % (table_name, )
für dieses Bit verwenden und die Tabelle leer, aber intakt lassen.Gemäß der neuesten Dokumentation wäre die richtige Methode zum Aufrufen:
quelle
delete
Methode der Instanz aufgerufen wird, während dies beimdelete
Aufruf der Instanz nicht der FallQuerySet
ist.Wenn Sie alle Daten aus all Ihren Tabellen entfernen möchten, können Sie den Befehl versuchen
python manage.py flush
. Dadurch werden alle Daten in Ihren Tabellen gelöscht, die Tabellen selbst sind jedoch weiterhin vorhanden.Weitere Informationen finden Sie hier: https://docs.djangoproject.com/de/1.8/ref/django-admin/
quelle
Mit Shell,
1) Zum Löschen der Tabelle:
2) Zum Entfernen aller Daten aus der Tabelle:
quelle
Django 1.11 löscht alle Objekte aus einer Datenbanktabelle -
Lesen Sie hier die offizielle Django-Dokumentation, wie unten angegeben - https://docs.djangoproject.com/de/1.11/topics/db/queries/#deleting-objects
Beachten Sie, dass delete () die einzige QuerySet-Methode ist, die in einem Manager selbst nicht verfügbar gemacht wird. Dies ist ein Sicherheitsmechanismus, der verhindert, dass Sie versehentlich Entry.objects.delete () anfordern und alle Einträge löschen. Wenn Sie alle Objekte löschen möchten, müssen Sie explizit einen vollständigen Abfragesatz anfordern:
Ich selbst habe das unten gezeigte Code-Snippet in meinem ausprobiert
somefilename.py
und innerhalb meiner habe
views.py
ich eine Ansicht, die einfach eine HTML-Seite rendert ...Es löschte alle Einträge aus - model == model_4, aber jetzt wird ein Fehlerbildschirm in der Admin-Konsole angezeigt, wenn ich versuche festzustellen, dass alle Objekte von model_4 gelöscht wurden ...
Bedenken Sie, dass die Django-App wie vorgesehen funktioniert, wenn wir nicht zur ADMIN-Konsole gehen und versuchen, bereits gelöschte Objekte des Modells anzuzeigen.
django admin screencapture
quelle
Es gibt verschiedene Möglichkeiten:
So löschen Sie es direkt:
So löschen Sie es aus einer Instanz:
// benutze nicht den gleichen Namen
quelle