Simon Charette 
							
						 
					 
					
						
						
							
						
						4fcc2883fa 
					 
					
						
						
							
							Refs  #27222  -- Restored Model.save()'s refreshing of db_returning fields even if a value is set.  
						
						... 
						
						
						
						The logic could likely be adjusted to assign the pre_save value in most cases
to avoid the database transit but it could break in subtle ways so it's not
worth the complexity it would require.
Regression in 94680437a4timograham@gmail.com > 
						
						
					 
					
						2025-09-17 07:50:08 -04:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						94680437a4 
					 
					
						
						
							
							Fixed   #27222  -- Refreshed model field values assigned expressions on save().  
						
						... 
						
						
						
						Removed the can_return_columns_from_insert skip gates on existing
field_defaults tests to confirm the expected number of queries are
performed and that returning field overrides are respected. 
						
						
					 
					
						2025-09-14 00:27:50 +02:00 
						 
				 
			
				
					
						
							
							
								django-bot 
							
						 
					 
					
						
						
							
						
						69a93a88ed 
					 
					
						
						
							
							Refs  #36500  -- Rewrapped long docstrings and block comments via a script.  
						
						... 
						
						
						
						Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505 . 
						
						
					 
					
						2025-07-23 20:17:55 -03:00 
						 
				 
			
				
					
						
							
							
								Sarah Boyce 
							
						 
					 
					
						
						
							
						
						d5fec03dad 
					 
					
						
						
							
							Refs  #35060  -- Removed passing positional arguments to Model.save()/asave() per deprecation timeline.  
						
						
						
						
					 
					
						2025-01-15 22:28:37 +01:00 
						 
				 
			
				
					
						
							
							
								Bendeguz Csirmaz 
							
						 
					 
					
						
						
							
						
						8287fd4915 
					 
					
						
						
							
							Refs  #36064  -- Added test that falsey primary key default/db_default value skips an update query on save.  
						
						... 
						
						
						
						This adds test coverage for logic change in 9fa4d07ce0 
						
						
					 
					
						2025-01-10 11:43:38 +01:00 
						 
				 
			
				
					
						
							
							
								Csirmaz Bendegúz 
							
						 
					 
					
						
						
							
						
						5865ff5adc 
					 
					
						
						
							
							Refs  #373  -- Added Model._is_pk_set() abstraction to check if a Model's PK is set.  
						
						
						
						
					 
					
						2024-09-09 17:46:50 -03:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						52ed2b645e 
					 
					
						
						
							
							Refs  #35060  -- Adjusted deprecation warning stacklevel in Model.save()/asave().  
						
						
						
						
					 
					
						2024-08-28 11:44:05 -03:00 
						 
				 
			
				
					
						
							
							
								nessita 
							
						 
					 
					
						
						
							
						
						e56a32b89b 
					 
					
						
						
							
							Fixed 35561 -- Made *args and **kwargs parsing more strict in Model.save()/asave().  
						
						
						
						
					 
					
						2024-06-26 12:13:17 -03:00 
						 
				 
			
				
					
						
							
							
								Adam Johnson 
							
						 
					 
					
						
						
							
						
						28522c3c8d 
					 
					
						
						
							
							Fixed   #35554 , Refs  #35060  -- Corrected deprecated *args parsing in Model.save()/asave().  
						
						... 
						
						
						
						The transitional logic added to deprecate the usage of *args for
Model.save()/asave() introduced two issues that this branch fixes:
 * Passing extra positional arguments no longer raised TypeError.
 * Passing a positional but empty update_fields would save all fields.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com > 
						
						
					 
					
						2024-06-25 13:12:10 -03:00 
						 
				 
			
				
					
						
							
							
								Jacob Walls 
							
						 
					 
					
						
						
							
						
						ceea86baa3 
					 
					
						
						
							
							Fixed   #35425  -- Avoided INSERT with force_update and explicit pk.  
						
						... 
						
						
						
						Affected models where the primary key field is defined with a
default or db_default, such as UUIDField. 
						
						
					 
					
						2024-05-07 12:15:27 +02:00 
						 
				 
			
				
					
						
							
							
								Giannis Terzopoulos 
							
						 
					 
					
						
						
							
						
						0c690c6001 
					 
					
						
						
							
							Refs  #35044  -- Added Model.refresh_from_db(fields=...) test for clearing reverse relations.  
						
						
						
						
					 
					
						2024-03-08 10:27:19 +01:00 
						 
				 
			
				
					
						
							
							
								Aivars Kalvans 
							
						 
					 
					
						
						
							
						
						f92641a636 
					 
					
						
						
							
							Fixed   #28344  -- Allowed customizing queryset in Model.refresh_from_db()/arefresh_from_db().  
						
						... 
						
						
						
						The from_queryset parameter can be used to:
- use a custom Manager
- lock the row until the end of transaction
- select additional related objects 
						
						
					 
					
						2024-01-15 10:55:14 +01:00 
						 
				 
			
				
					
						
							
							
								Salvo Polizzi 
							
						 
					 
					
						
						
							
						
						3915d4c70d 
					 
					
						
						
							
							Fixed   #35060  -- Deprecated passing positional arguments to Model.save()/asave().  
						
						
						
						
					 
					
						2024-01-02 08:42:33 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						978680db22 
					 
					
						
						
							
							Refs  #34925  -- Avoided altering passed by reference refresh_from_db(fields).  
						
						... 
						
						
						
						Follow up to b0ec87b857 
						
						
					 
					
						2023-11-25 17:01:14 +01:00 
						 
				 
			
				
					
						
							
							
								trontelj 
							
						 
					 
					
						
						
							
						
						b0ec87b857 
					 
					
						
						
							
							Fixed   #34925  -- Prevented Model.refresh_from_db() from mutating list of fields.  
						
						
						
						
					 
					
						2023-11-24 13:42:40 +01:00 
						 
				 
			
				
					
						
							
							
								Ian Foote 
							
						 
					 
					
						
						
							
						
						7414704e88 
					 
					
						
						
							
							Fixed   #470  -- Added support for database defaults on fields.  
						
						... 
						
						
						
						Special thanks to Hannes Ljungberg for finding multiple implementation
gaps.
Thanks also to Simon Charette, Adam Johnson, and Mariusz Felisiak for
reviews. 
						
						
					 
					
						2023-05-12 19:11:40 +02:00 
						 
				 
			
				
					
						
							
							
								David Smith 
							
						 
					 
					
						
						
							
						
						097e3a70c1 
					 
					
						
						
							
							Refs  #33476  -- Applied Black's 2023 stable style.  
						
						... 
						
						
						
						Black 23.1.0 is released which, as the first release of the year,
introduces the 2023 stable style. This incorporates most of last year's
preview style.
https://github.com/psf/black/releases/tag/23.1.0  
						
						
					 
					
						2023-02-01 11:04:38 +01:00 
						 
				 
			
				
					
						
							
							
								Gregor Gärtner 
							
						 
					 
					
						
						
							
						
						f0c06f8ab7 
					 
					
						
						
							
							Refs  #33990  -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual().  
						
						... 
						
						
						
						Co-Authored-By: Michael Howitz <mh@gocept.com > 
						
						
					 
					
						2022-10-08 08:07:38 +02:00 
						 
				 
			
				
					
						
							
							
								David Wobrock 
							
						 
					 
					
						
						
							
						
						3b4a5b9f97 
					 
					
						
						
							
							Fixed   #23353  -- Used "raise from" when raising TransactionManagementError.  
						
						... 
						
						
						
						This change sets the __cause__ attribute to raised exceptions. 
						
						
					 
					
						2022-10-03 06:08:54 +02:00 
						 
				 
			
				
					
						
							
							
								kshivakumar 
							
						 
					 
					
						
						
							
						
						46efd03d26 
					 
					
						
						
							
							Fixed   #33733  -- Preserved wrapper assignment for manager methods.  
						
						
						
						
					 
					
						2022-06-01 10:44:34 +02:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						0982cf2a01 
					 
					
						
						
							
							Refs  #33733  -- Added tests for attributes of manager methods.  
						
						
						
						
					 
					
						2022-06-01 10:44:34 +02:00 
						 
				 
			
				
					
						
							
							
								Andrew Godwin 
							
						 
					 
					
						
						
							
						
						58b27e0dbb 
					 
					
						
						
							
							Fixed   #33646  -- Added async-compatible interface to QuerySet.  
						
						... 
						
						
						
						Thanks Simon Charette for reviews.
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es >
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com > 
						
						
					 
					
						2022-04-26 20:25:23 +02:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						847f46e9bf 
					 
					
						
						
							
							Removed redundant QuerySet.all() calls in docs and tests.  
						
						... 
						
						
						
						Most QuerySet methods are mapped onto the Manager and, in general,
it isn't necessary to call .all() on the manager. 
						
						
					 
					
						2022-02-22 10:29:38 +01:00 
						 
				 
			
				
					
						
							
							
								Mariusz Felisiak 
							
						 
					 
					
						
						
							
						
						7119f40c98 
					 
					
						
						
							
							Refs  #33476  -- Refactored code to strictly match 88 characters line length.  
						
						
						
						
					 
					
						2022-02-07 20:37:05 +01:00 
						 
				 
			
				
					
						
							
							
								django-bot 
							
						 
					 
					
						
						
							
						
						9c19aff7c7 
					 
					
						
						
							
							Refs  #33476  -- Reformatted code with Black.  
						
						
						
						
					 
					
						2022-02-07 20:37:05 +01:00 
						 
				 
			
				
					
						
							
							
								Adam Johnson 
							
						 
					 
					
						
						
							
						
						08d8bccbf1 
					 
					
						
						
							
							Improved Model.__init__() properties loop.  
						
						... 
						
						
						
						This improves readability, accumulates unrecognized arguments raise an
exception with all of them, and avoids refetching the values. 
						
						
					 
					
						2022-01-13 11:09:37 +01:00 
						 
				 
			
				
					
						
							
							
								Johan Schiff 
							
						 
					 
					
						
						
							
						
						d01709aae2 
					 
					
						
						
							
							Fixed   #24141  -- Added QuerySet.contains().  
						
						
						
						
					 
					
						2021-03-06 20:40:29 +01:00 
						 
				 
			
				
					
						
							
							
								Jacob Walls 
							
						 
					 
					
						
						
							
						
						73b1b225ce 
					 
					
						
						
							
							Fixed   #22640  -- Raised TypeError when instantiating model with keyword and positional args for the same field.  
						
						
						
						
					 
					
						2021-03-01 20:26:39 +01:00 
						 
				 
			
				
					
						
							
							
								Hasan Ramezani 
							
						 
					 
					
						
						
							
						
						3f7b327562 
					 
					
						
						
							
							Fixed   #31235  -- Made assertQuerysetEqual() compare querysets directly.  
						
						... 
						
						
						
						This also replaces assertQuerysetEqual() to
assertSequenceEqual()/assertCountEqual() where appropriate.
Co-authored-by: Peter Inglesby <peter.inglesby@gmail.com >
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com > 
						
						
					 
					
						2020-11-06 09:24:50 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandr Tatarinov 
							
						 
					 
					
						
						
							
						
						f4ac167119 
					 
					
						
						
							
							Fixed   #27719  -- Added QuerySet.alias() to allow creating reusable aliases.  
						
						... 
						
						
						
						QuerySet.alias() allows creating reusable aliases for expressions that
don't need to be selected but are used for filtering, ordering, or as
a part of complex expressions.
Thanks Simon Charette for reviews. 
						
						
					 
					
						2020-07-31 13:19:33 +02:00 
						 
				 
			
				
					
						
							
							
								Abhijeet Viswa 
							
						 
					 
					
						
						
							
						
						babd412685 
					 
					
						
						
							
							Fixed   #29129  -- Skipped UPDATE when adding a model instance with inherited primary key that has a default.  
						
						
						
						
					 
					
						2020-03-05 12:08:38 +01:00 
						 
				 
			
				
					
						
							
							
								Nick Pope 
							
						 
					 
					
						
						
							
						
						335c9c94ac 
					 
					
						
						
							
							Simplified imports from django.db and django.contrib.gis.db.  
						
						
						
						
					 
					
						2020-02-04 13:20:06 +01:00 
						 
				 
			
				
					
						
							
							
								ElizabethU 
							
						 
					 
					
						
						
							
						
						54ea290e5b 
					 
					
						
						
							
							Fixed   #30651  -- Made __eq__() methods return NotImplemented for not implemented comparisons.  
						
						... 
						
						
						
						Changed __eq__ to return NotImplemented instead of False if compared to
an object of the same type, as is recommended by the Python data model
reference. Now these models can be compared to ANY (or other objects
with __eq__ overwritten) without returning False automatically. 
						
						
					 
					
						2019-10-01 17:58:19 +02:00 
						 
				 
			
				
					
						
							
							
								Hasan Ramezani 
							
						 
					 
					
						
						
							
						
						85458e94e3 
					 
					
						
						
							
							Fixed   #29260  -- Skipped an UPDATE when adding a model instance with primary key that has a default.  
						
						
						
						
					 
					
						2019-08-19 13:28:35 +02:00 
						 
				 
			
				
					
						
							
							
								Amir Hadi 
							
						 
					 
					
						
						
							
						
						330638b89f 
					 
					
						
						
							
							Fixed   #6785  -- Made QuerySet.get() fetch a limited number of rows.  
						
						... 
						
						
						
						Co-authored-by: Tim Graham <timograham@gmail.com >
Co-authored-by: Patryk Zawadzki <patrys@room-303.com >
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com > 
						
						
					 
					
						2019-05-12 07:05:24 +02:00 
						 
				 
			
				
					
						
							
							
								Carlton Gibson 
							
						 
					 
					
						
						
							
						
						607ff4efa3 
					 
					
						
						
							
							Refs  #30254  -- Added tests for Model.__hash__() inheritance.  
						
						
						
						
					 
					
						2019-04-24 09:59:09 +02:00 
						 
				 
			
				
					
						
							
							
								Simon Charette 
							
						 
					 
					
						
						
							
						
						84e7a9f4a7 
					 
					
						
						
							
							Switched setUp() to setUpTestData() where possible in Django's tests.  
						
						
						
						
					 
					
						2018-11-27 09:35:17 -05:00 
						 
				 
			
				
					
						
							
							
								Hasan Ramezani 
							
						 
					 
					
						
						
							
						
						cf915cb513 
					 
					
						
						
							
							Added a test for a lookup in Model.refresh_from_db(fields=[...]).  
						
						
						
						
					 
					
						2018-11-15 11:38:47 -05:00 
						 
				 
			
				
					
						
							
							
								oliver 
							
						 
					 
					
						
						
							
						
						0ce2ad9ca4 
					 
					
						
						
							
							Used QuerySet.bulk_create() in a couple tests.  
						
						
						
						
					 
					
						2018-11-06 19:32:40 -05:00 
						 
				 
			
				
					
						
							
							
								Tom Forbes 
							
						 
					 
					
						
						
							
						
						9cbdb44014 
					 
					
						
						
							
							Fixed   #23646  -- Added QuerySet.bulk_update() to efficiently update many models.  
						
						
						
						
					 
					
						2018-09-18 16:14:44 -04:00 
						 
				 
			
				
					
						
							
							
								Ming Qin 
							
						 
					 
					
						
						
							
						
						cfb4845f06 
					 
					
						
						
							
							Fixed   #29625  -- Made Model.refresh_from_db() clear prefetch related caches.  
						
						
						
						
					 
					
						2018-08-20 12:01:42 -04:00 
						 
				 
			
				
					
						
							
							
								Federico Bond 
							
						 
					 
					
						
						
							
						
						4c36414323 
					 
					
						
						
							
							Fixed   #29517  -- Rephrased error message when passing incorrect kwarg to model constructor  
						
						
						
						
					 
					
						2018-06-25 09:30:58 +02:00 
						 
				 
			
				
					
						
							
							
								Tom 
							
						 
					 
					
						
						
							
						
						c1c163b427 
					 
					
						
						
							
							Fixed   #28574  -- Added QuerySet.explain().  
						
						
						
						
					 
					
						2018-04-19 10:52:19 -04:00 
						 
				 
			
				
					
						
							
							
								Jon Dufresne 
							
						 
					 
					
						
						
							
						
						136bf5c214 
					 
					
						
						
							
							Fixed   #29076  -- Made Model.refresh_from_db() clear cached relationships even if the related id doesn't change.  
						
						
						
						
					 
					
						2018-01-30 10:43:53 -05:00 
						 
				 
			
				
					
						
							
							
								Paulo 
							
						 
					 
					
						
						
							
						
						a7b5ad8b19 
					 
					
						
						
							
							Fixed   #27846  -- Made Model.refresh_from_db() clear cached relations.  
						
						
						
						
					 
					
						2017-10-12 17:04:10 -04:00 
						 
				 
			
				
					
						
							
							
								Tim Graham 
							
						 
					 
					
						
						
							
						
						a80903b711 
					 
					
						
						
							
							Removed DatabaseFeatures.supports_microsecond_precision.  
						
						... 
						
						
						
						MySQL 5.5 (refs #28552 ) was the last database to use it. 
						
						
					 
					
						2017-09-25 14:48:15 -04:00 
						 
				 
			
				
					
						
							
							
								Mads Jensen 
							
						 
					 
					
						
						
							
						
						a51c4de194 
					 
					
						
						
							
							Used assertRaisesMessage() to test Django's error messages.  
						
						
						
						
					 
					
						2017-07-29 19:07:23 -04:00 
						 
				 
			
				
					
						
							
							
								Jon Dufresne 
							
						 
					 
					
						
						
							
						
						21046e7773 
					 
					
						
						
							
							Fixed   #28249  -- Removed unnecessary dict.keys() calls.  
						
						... 
						
						
						
						iter(dict) is equivalent to iter(dict.keys()). 
						
						
					 
					
						2017-05-27 19:08:46 -04:00 
						 
				 
			
				
					
						
							
							
								Claude Paroz 
							
						 
					 
					
						
						
							
						
						c651331b34 
					 
					
						
						
							
							Converted usage of ugettext* functions to their gettext* aliases  
						
						... 
						
						
						
						Thanks Tim Graham for the review. 
						
						
					 
					
						2017-02-07 09:04:04 +01:00 
						 
				 
			
				
					
						
							
							
								chillaranand 
							
						 
					 
					
						
						
							
						
						d6eaf7c018 
					 
					
						
						
							
							Refs  #23919  -- Replaced super(ClassName, self) with super().  
						
						
						
						
					 
					
						2017-01-25 12:23:46 -05:00