Save vs Update in Django - Deepstash
Save vs Update in Django

Save vs Update in Django

Save vs Update in Django

helmut.dev

6 IDEAS

2

Keep reading for FREE

Save

The ".save()" method is used to write a model instance to the database. It can be an existing record or even a new one. For an existing record, Django will run a SQL UPDATE statement on the database. For a new record, Django will run an INSERT.

2

90 reads

Problems with save()

When updating an existing record, Django will update every field. That means, if you changed only one field on the model instance, all the fields will be updated (with the values staying the same). This is inefficient, especially if the model has many fields.

Another problem is that if there's a significant amount of time in between the fetching of the record and the saving of it, it is possible that another request will have updated one of the fields on that record, and your model instance still has the old value.

Calling ".save()" now will overwrite the new value that someone else saved.

2

11 reads

Saving with update_fields

To prevent updating every field of the model you can use the update_fields parameter. It expects a list of fields that you want to save. The UPDATE that is run against the database then only updates those fields that you have specified.

For example, in case we only want to update the price of a toy, we would run "toy.save(update_fields=["price"])".

2

14 reads

When to use save

  • when creating a new record.
  • you have a model instance already, and you need to change some field values.
  • you've overridden the save() method to include some custom model logic.
  • you defined pre_save and post_save signals for that model.

2

7 reads

Update

The ".update()" method is available on each queryset object of the ORM. For example, "Toy.objects.filter(price__lt=50).update(price=50)".

This would update the price of all toys that are below a certain price. While this is for a range of records, it could also be used to update a single record: "Toy.objects.filter(name="hippo").update(price=120)".

2

7 reads

When to use update

  • you are updating fields of one or many records (note: update cannot be used to create a new record, like save can).
  • you don't need to re-use a model instance after updating.
  • you don't need your overridden save() method or any pre_save or post_save signals to run.
  • you know what your new field values must be without having retrieved the record(s).

2

6 reads

CURATED BY

MORE LIKE THIS

Foreign Key on Models | Django documentation

Foreign Key on Models | Django documentation

Foreign Key on Models | Django documentation

docs.djangoproject.com

Sanic and Data Validation using Pydantic

Sanic and Data Validation using Pydantic

8 Things to Know to Master Value Sorting in Pandas

8 Things to Know to Master Value Sorting in Pandas

Ready for the next level?

Read Like a Pro

stash-superman-illustration

Explore the World’s

Best Ideas

200,000+ ideas on pretty much any topic. Created by the smartest people around & well-organized so you can explore at will.

An Idea for Everything

Explore the biggest library of insights. And we've infused it with powerful filtering tools so you can easily find what you need.

Knowledge Library

Powerful Saving & Organizational Tools

Save ideas for later reading, for personalized stashes, or for remembering it later.

# Personal Growth

Take Your Ideas

Anywhere

Organize your ideas & listen on the go. And with Pro, there are no limits.

Listen on the go

Just press play and we take care of the words.

Never worry about spotty connections

No Internet access? No problem. Within the mobile app, all your ideas are available, even when offline.

Get Organized with Stashes

Ideas for your next work project? Quotes that inspire you? Put them in the right place so you never lose them.

Join

2 Million Stashers

4.8

Stars

5,740 Reviews

App Store

4.7

Stars

72,690 Reviews

Google Play

Sean Green

Great interesting short snippets of informative articles. Highly recommended to anyone who loves information and lacks patience.

Ashley Anthony

This app is LOADED with RELEVANT, HELPFUL, AND EDUCATIONAL material. It is creatively intellectual, yet minimal enough to not overstimulate and create a learning block. I am exceptionally impressed with this app!

Shankul Varada

Best app ever! You heard it right. This app has helped me get back on my quest to get things done while equipping myself with knowledge everyday.

samz905

Don’t look further if you love learning new things. A refreshing concept that provides quick ideas for busy thought leaders.

Laetitia Berton

I have only been using it for a few days now, but I have found answers to questions I had never consciously formulated, or to problems I face everyday at work or at home. I wish I had found this earlier, highly recommended!

Giovanna Scalzone

Brilliant. It feels fresh and encouraging. So many interesting pieces of information that are just enough to absorb and apply. So happy I found this.

Ghazala Begum

Even five minutes a day will improve your thinking. I've come across new ideas and learnt to improve existing ways to become more motivated, confident and happier.

Jamyson Haug

Great for quick bits of information and interesting ideas around whatever topics you are interested in. Visually, it looks great as well.

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving & library

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Personalized recommendations

FAQ

Claim Your Limited Offer

Get Deepstash Pro

BLACK FRIDAY

75% OFF | 1-Year Pro Subscription

Claim Offer