← Back to Django Course | Chapter 4: Models & Django ORM Basics | Lesson 9 of 10

Model Instances Delete करना

Deleting filing cabinet से एक card निकालकर उसे shred करने जैसा है — यह database से हमेशा के लिए चला जाता है।
Syntax
markup
# One object
obj = ModelName.objects.get(id=1)
obj.delete()

# Many rows
ModelName.objects.filter(field=value).delete()

एक Single Object Delete करना

पहले object fetch करें, फिर उस instance पर .delete() call करें database से सिर्फ उस एक row को हटाने के लिए।

उदाहरण: Deleting a Single Object

Fetch the object first, then call .delete() on that instance to remove just that one row from the database.

bash
book = Book.objects.get(id=1)
book.delete()

⚠️ Run this in your own terminal or Node.js environment.

Multiple Objects Delete करना

एक filtered QuerySet पर directly .delete() call करना हर matching row को हटा देता है, सब एक database operation में।

Warning: .delete() call करने से पहले हमेशा carefully filter करें — Book.objects.all().delete() table में हर row हटा देता है।

उदाहरण: Deleting Multiple Objects

Calling .delete() directly on a filtered QuerySet removes every row that matches the filter, all in one database operation.

bash
Book.objects.filter(genre='Horror').delete()

⚠️ Run this in your own terminal or Node.js environment.

Deletion Confirm करना

.delete() total deleted objects की संख्या वाला एक tuple return करता है, जो confirm करने के लिए useful है कि असल में क्या हुआ।

उदाहरण: Confirming Deletion

.delete() returns a tuple with the total number of objects deleted, which is useful for confirming what actually happened.

bash
result = Book.objects.filter(pages__lt=50).delete()
print(result)

⚠️ Run this in your own terminal or Node.js environment.

Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. गलती से एक पूरी unfiltered QuerySet पर .delete() call करना, table में हर row wipe out करते हुए।
  2. यह भूल जाना कि एक object delete करना on_delete settings के आधार पर related objects को भी cascade करके delete कर सकता है।
  3. .delete() call करने से पहले यह confirm न करना कि object exist करता है, एक DoesNotExist error का risk लेते हुए।
चैप्टर सारांश
  • एक single fetched instance पर .delete() call करना सिर्फ उस row को हटाता है।
  • एक filtered QuerySet पर .delete() call करना एक साथ हर matching row को हटाता है।
  • Deletion permanent है — Django में built-in undo या trash bin नहीं है।
  • Related objects ForeignKey पर set किए on_delete rule के आधार पर अपने आप delete हो सकते हैं।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.