浏览代码

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

Raphael Michel 9 年之前
父节点
当前提交
3e9b5bfd9c
共有 1 个文件被更改,包括 13 次插入0 次删除
  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
 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
 ======================================
 ======================================