J'ai deux questions:
- Comment supprimer une table dans Django?
- Comment supprimer toutes les données du tableau?
Voici mon code, qui ne réussit pas:
Reporter.objects.delete()
python
django
django-queryset
zjm1126
la source
la source
Réponses:
À l'intérieur d'un manager:
la source
'DELETE FROM %s' % (table_name, )
pour cela, laissant la table vide mais intacte.Selon la dernière documentation , la méthode correcte à appeler serait:
la source
delete
méthode de l'instance est appelée, alors qu'avec l'delete
appel surQuerySet
elle ne l'est pas.Si vous souhaitez 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.En savoir plus ici: https://docs.djangoproject.com/en/1.8/ref/django-admin/
la source
En utilisant shell,
1) Pour supprimer le tableau:
2) Pour supprimer toutes les données du tableau:
la source
Django 1.11 supprime tous les objets d'une table de base de données -
Reportez-vous à la documentation officielle de Django ici comme cité 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 Manager lui-même. Il s'agit d'un mécanisme de sécurité pour vous empêcher de demander accidentellement Entry.objects.delete () et de supprimer toutes les entrées. Si vous souhaitez supprimer tous les objets, vous devez demander explicitement un jeu de requêtes complet:
J'ai moi-même essayé l'extrait de code ci-dessous dans mon
somefilename.py
et dans mon
views.py
j'ai une vue qui rend simplement une page html ...il a fini de supprimer toutes les entrées de - model == model_4, mais maintenant je peux voir un écran d'erreur dans la console d'administration lorsque j'essaye de vérifier que tous les objets de model_4 ont été supprimés ...
Considérez que - si nous n'allons pas dans la console ADMIN et essayons de voir les objets du modèle - qui ont déjà été supprimés - l'application Django fonctionne comme prévu.
Capture d'écran de l'administrateur django
la source
Il y a plusieurs façons:
Pour le supprimer directement:
Pour le supprimer d'une instance:
// n'utilise pas le même nom
la source