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

This commit is contained in:
Tsering 2016-04-23 16:38:57 -04:00 committed by Tim Graham
parent a9e188ccd6
commit fc4b4fd585
1 changed files with 16 additions and 0 deletions

View File

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