जवाबों:
एक प्रबंधक के अंदर:
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)
'DELETE FROM %s' % (table_name, )
उस बिट के लिए उपयोग करूंगा , जिससे मेज खाली रह जाएगी लेकिन बरकरार रहेगी ।
नवीनतम दस्तावेज़ के अनुसार , कॉल करने का सही तरीका होगा:
Reporter.objects.all().delete()
delete
तरीका कहा जाता है, जबकि इस delete
पर कॉल QuerySet
नहीं है।
यदि आप अपने सभी तालिकाओं से सभी डेटा हटाना चाहते हैं, तो आप कमांड को आज़माना चाहते हैं python manage.py flush
। यह आपकी तालिकाओं के सभी डेटा को हटा देगा, लेकिन तालिकाएँ अभी भी मौजूद होंगी।
यहाँ और देखें: https://docs.djangoproject.com/en/1.8/ref/django-admin/
Django 1.11 डेटाबेस टेबल से सभी वस्तुओं को हटा दें -
Entry.objects.all().delete() ## Entry being Model Name.
नीचे दिए गए उद्धरण के अनुसार यहाँ आधिकारिक Django के दस्तावेज़ देखें - https://docs.djangoproject.com/en/1.11/topics/db/queries/#de हटाना-objects
ध्यान दें कि हटाना () एकमात्र क्वेरीसेट विधि है जो किसी प्रबंधक पर ही उजागर नहीं होती है। यह गलती से आपको Entry.objects.delete () का अनुरोध करने और सभी प्रविष्टियों को हटाने से रोकने के लिए एक सुरक्षा तंत्र है। यदि आप सभी ऑब्जेक्ट हटाना चाहते हैं, तो आपको स्पष्ट रूप से एक संपूर्ण क्वेरी सेट का अनुरोध करना होगा:
मैंने खुद अपने नीचे देखे गए कोड स्निपेट को आजमाया 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)
और मेरे भीतर views.py
एक ऐसा दृश्य है जो बस एक html पृष्ठ को प्रस्तुत करता है ...
def data_del_4(request):
obj = calc_2() ##
obj.del_model_4()
return render(request, 'dc_dash/data_del_4.html') ##
इसने सभी प्रविष्टियों को हटा दिया - मॉडल == model_4 से, लेकिन अब मुझे व्यवस्थापक कंसोल में एक त्रुटि स्क्रीन देखने को मिलती है जब मैं यह पता लगाने की कोशिश करता हूं कि मॉडल_4 की सभी वस्तुओं को हटा दिया गया है ...
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"
इस पर विचार करें कि - अगर हम ADMIN कंसोल पर नहीं जाते हैं और मॉडल की वस्तुओं को देखने की कोशिश करते हैं और देखते हैं - जो पहले ही हटा दी गई हैं - Django ऐप ठीक उसी तरह से काम करता है।
कुछ तरीके हैं:
इसे सीधे हटाने के लिए:
SomeModel.objects.filter(id=id).delete()
इसे एक उदाहरण से हटाने के लिए:
instance1 = SomeModel.objects.get(id=id)
instance1.delete()
// समान नाम का उपयोग न करें