J'ai deux questions :
- Comment supprimer une table dans Django ?
- Comment supprimer toutes les données du tableau ?
Voici mon code, qui ne fonctionne pas :
Reporter.objects.delete()
J'ai deux questions :
Voici mon code, qui ne fonctionne pas :
Reporter.objects.delete()
De même, si vous utilisez la méthode delete_everything(), prenez garde à ce bogue : code.djangoproject.com/ticket/16426
Selon les derniers documentation la méthode correcte à appeler serait :
Reporter.objects.all().delete()
Oui, mais cela ne fonctionne pas si vous avez beaucoup d'enregistrements dans la table. J'ai donc dû procéder comme suit : for x in MyTable.objects.all().iterator() : x.delete()
Si vous voulez supprimer toutes les données de toutes vos tables, vous pouvez essayer la commande python manage.py flush
. Cela supprimera toutes les données de vos tables, mais les tables elles-mêmes existeront toujours.
Plus d'informations ici : https://docs.djangoproject.com/en/1.8/ref/django-admin/
Il aurait été utile que vous mentionniez que cela supprime également votre super-utilisateur.
Il a bien dit "toutes les données de toutes vos tables", ce qui devrait indiquer que c'est une opération très destructive.
La table User se trouve dans la même base de données que "vos" tables. Vous devriez le savoir avant d'utiliser une telle opération.
Django 1.11 supprime tous les objets d'une table de la 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/en/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. Il s'agit d'un mécanisme de sécurité pour éviter que vous ne demandiez accidentellement Entry.objects.delete(), et que vous supprimiez toutes les entrées. Si vous souhaitez supprimer tous les objets, vous devez demander explicitement un ensemble de requêtes complet :
J'ai moi-même essayé l'extrait de code ci-dessous dans mon fichier 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 fini par supprimer toutes les entrées de - modèle == modèle_4 , mais maintenant je dois voir un écran d'erreur dans la console d'administration quand j'essaie d'asceratin que tous les objets de modèle_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"
Considérez que si nous n'allons pas dans la console ADMIN pour essayer de voir les objets du modèle - qui ont déjà été supprimés - l'application Django fonctionne comme prévu.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Depuis l'interface CLI : stackoverflow.com/questions/6485106/