Browse Source

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

Raphael Michel 9 years ago
parent
commit
3e9b5bfd9c
1 changed files with 13 additions and 0 deletions
  1. 13 0
      docs/intro/tutorial04.txt

+ 13 - 0
docs/intro/tutorial04.txt

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