Fixed #7060 -- Added a note about race conditions to the tutorial

This commit is contained in:
Raphael Michel 2015-06-04 15:09:28 +02:00 committed by Tim Graham
parent 19e67c6cd1
commit 3e9b5bfd9c
1 changed files with 13 additions and 0 deletions

View File

@ -179,6 +179,19 @@ Now, go to ``/polls/1/`` in your browser and vote in the question. You should se
results page that gets updated each time you vote. If you submit the form results page that gets updated each time you vote. If you submit the form
without having chosen a choice, you should see the error message. without having chosen a choice, you should see the error message.
.. note::
The code for our ``vote()`` view does have a small problem. It first gets
the ``selected_choice`` object from the database, then computes the new
value of ``votes``, and then saves it back to the database. If two users of
your Web site try to vote at *exactly the same time*, this might go wrong:
The same value, let's say 42, will be retrieved for ``votes``. Then, for
both users the new value of 43 is computed and saved, but 44 would be the
expected value.
This is called a *race condition*. If you are interested, you can read
:ref:`avoiding-race-conditions-using-f` to learn how you can solve this
issue.
Use generic views: Less code is better Use generic views: Less code is better
====================================== ======================================