Why doesn't django only UPDATE the fields that are changed?

There have been previous threads on this - see Automatically setting update_fields when saving a model instance for what I think is the most recent one.

The brief answer is that it exposes your application to a wider range of race-condition errors. So it’s safer to save the entire object.