mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Refs #23386 -- Documented that F() expressions are applied on each model.save()
This commit is contained in:
		| @@ -166,6 +166,22 @@ robust: it will only ever update the field based on the value of the field in | ||||
| the database when the :meth:`~Model.save()` or ``update()`` is executed, rather | ||||
| than based on its value when the instance was retrieved. | ||||
|  | ||||
| ``F()`` assignments persist after ``Model.save()`` | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| ``F()`` objects assigned to model fields persist after saving the model | ||||
| instance and will be applied on each :meth:`~Model.save()`. For example:: | ||||
|  | ||||
|     reporter = Reporters.objects.get(name='Tintin') | ||||
|     reporter.stories_filed = F('stories_filed') + 1 | ||||
|     reporter.save() | ||||
|  | ||||
|     reporter.name = 'Tintin Jr.' | ||||
|     reporter.save() | ||||
|  | ||||
| ``stories_filed`` will be updated twice in this case. If it's initially ``1``, | ||||
| the final value will be ``3``. | ||||
|  | ||||
| Using ``F()`` in filters | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user