Commit 67c60cce authored by Tsering's avatar Tsering Committed by Tim Graham
Browse files

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

Backport of fc4b4fd5 from master
parent e1d83c2f
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -174,6 +174,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
~~~~~~~~~~~~~~~~~~~~~~~~