2
0
Эх сурвалжийг харах

Refs #23386 -- Documented that F() expressions are applied on each model.save()

Tsering 9 жил өмнө
parent
commit
fc4b4fd585

+ 16 - 0
docs/ref/models/expressions.txt

@@ -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
 ~~~~~~~~~~~~~~~~~~~~~~~~