J'ai deux questions :
c'est mon code, mais pas réussi:
Reporter.objects.delete()
Dans un manager:
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)
Selon la dernière documentation , la méthode correcte à appeler serait:
Reporter.objects.all().delete()
Si vous souhaitez supprimer toutes les données de toutes vos tables, essayez la commande python manage.py flush
. Cela supprimera toutes les données de vos tables, mais les tables elles-mêmes existeront toujours.
Voir plus ici: https://docs.djangoproject.com/fr/1.8/ref/Django-admin/
Django 1.11 supprimer tous les objets d'une table de base de données -
Entry.objects.all().delete() ## Entry being Model Name.
Reportez-vous à la documentation officielle de Django citée ci-dessous - https://docs.djangoproject.com/fr/1.11/topics/db/queries/#deleting-objects
Notez que delete () est la seule méthode QuerySet qui n'est pas exposée sur un gestionnaire lui-même. C'est un mécanisme de sécurité qui vous évite de demander accidentellement Entry.objects.delete () et de supprimer toutes les entrées. Si vous souhaitez supprimer tous les objets, vous devez explicitement demander un jeu de requêtes complet:
J'ai moi-même essayé l'extrait de code vu ci-dessous dans mon 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)
et dans mon views.py
j'ai une vue qui rend simplement une page html ...
def data_del_4(request):
obj = calc_2() ##
obj.del_model_4()
return render(request, 'dc_dash/data_del_4.html') ##
il a mis fin à la suppression de toutes les entrées de - model == model_4, mais maintenant, je vois un écran d'erreur dans la console d'administration lorsque j'essaie de vérifier que tous les objets de model_4 ont été supprimés ...
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"
Ne considérez pas que, si nous n'allons pas dans la console ADMIN et essayons de voir les objets du modèle déjà supprimés, l'application Django fonctionne comme prévu.
Il y a deux manières:
Pour le supprimer directement:
SomeModel.objects.filter(id=id).delete()
Pour le supprimer d'une instance:
instance1 = SomeModel.objects.get(id=id)
instance1.delete()
// n'utilise pas le même nom