Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 8 of 10 · Django Models & ORM
Interview question

What is the difference between Model.objects.create() and Model.save()? Model.objects.create() और Model.save() में क्या अंतर है?

Answer
MethodSteps requiredReturns
objects.create()One step - instantiate and save togetherThe saved instance
Model() + .save()Two steps - instantiate, then save separatelyNone (save() returns None)
# objects.create() - shorthand, does both steps at once
book = Book.objects.create(title='Django Basics', price=25.99)
# equivalent to:
book2 = Book(title='Django Basics', price=25.99)
book2.save()

# Using .save() gives you a chance to modify the instance BEFORE saving
book3 = Book(title='Advanced Django', price=35.99)
book3.price = book3.price * 0.9  # apply a discount before persisting
book3.save()

# .save() is also used for UPDATING an existing instance
book = Book.objects.get(id=1)
book.price = 19.99  # modify a field
book.save()  # UPDATE query, not INSERT, since the instance already has a pk

# update_or_create() - avoids checking existence manually
book, created = Book.objects.update_or_create(
    title='Django Basics',           # lookup fields
    defaults={'price': 22.99}         # fields to set if found/created
)
print('Created new' if created else 'Updated existing')

# get_or_create() - fetch if exists, otherwise create
book, created = Book.objects.get_or_create(
    title='New Book',
    defaults={'price': 15.00}
)

# bulk_create() - efficient for inserting many objects in ONE query
Book.objects.bulk_create([
    Book(title='Book A', price=10),
    Book(title='Book B', price=20),
    Book(title='Book C', price=30),
])  # single INSERT statement instead of 3 separate ones
MethodStepsReturn
objects.create()एक step - instantiate और save साथSaved instance
Model() + .save()दो stepsNone
book = Book.objects.create(title='Django Basics', price=25.99)
# बराबर है:
book2 = Book(title='Django Basics', price=25.99)
book2.save()

# save() से पहले instance modify करने का मौका
book3 = Book(title='Advanced Django', price=35.99)
book3.price = book3.price * 0.9
book3.save()

# UPDATE के लिए भी .save()
book = Book.objects.get(id=1)
book.price = 19.99
book.save()

# update_or_create()
book, created = Book.objects.update_or_create(
    title='Django Basics',
    defaults={'price': 22.99}
)
print('नया बना' if created else 'Update हुआ')

# get_or_create()
book, created = Book.objects.get_or_create(
    title='New Book',
    defaults={'price': 15.00}
)

# bulk_create() - एक query में कई objects
Book.objects.bulk_create([
    Book(title='Book A', price=10),
    Book(title='Book B', price=20),
])

Was this answer clear?