summaryrefslogtreecommitdiff
path: root/docs/ref/models
diff options
context:
space:
mode:
authorTsering <hour1hr@gmail.com>2016-04-23 16:38:57 -0400
committerTim Graham <timograham@gmail.com>2016-06-28 16:24:56 -0400
commitfc4b4fd5850989458d6e54de12a29b2e40e94ce8 (patch)
tree574a5e9e5a488baa2fea66a8ea04b4b83992c715 /docs/ref/models
parenta9e188ccd6315d278795355a53bce6c1a63f5a50 (diff)
Refs #23386 -- Documented that F() expressions are applied on each model.save()
Diffstat (limited to 'docs/ref/models')
-rw-r--r--docs/ref/models/expressions.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/ref/models/expressions.txt b/docs/ref/models/expressions.txt
index 6b1df0d937..a07b57e815 100644
--- a/docs/ref/models/expressions.txt
+++ b/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
~~~~~~~~~~~~~~~~~~~~~~~~