From fd1d986bb115db44ddd242ca1f7f73c604b60b18 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Wed, 3 Sep 2008 06:14:13 +0000 Subject: Fixed #8802 -- Documented MySQL's usage of 1/0 instead of True/False for model BooleanFields. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8910 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/ref/models/fields.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'docs/ref/models') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 8412f02d73..97ca83aa52 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -296,6 +296,19 @@ A true/false field. The admin represents this as a checkbox. +.. admonition:: MySQL users.. + + A boolean field in MySQL is stored as a ``TINYINT`` column with a value of + either 0 or 1 (most databases have a proper ``BOOLEAN`` type instead). So, + for MySQL, only, when a ``BooleanField`` is retrieved from the database + and stored on a model attribute, it will have the values 1 or 0, rather + than ``True`` or ``False``. Normally, this shouldn't be a problem, since + Python guarantees that ``1 == True`` and ``0 == False`` are both true. + Just be careful if you're writing something like ``obj is True`` when + ``obj`` is a value from a boolean attribute on a model. If that model was + constructed using the ``mysql`` backend, the "``is``" test will fail. + Prefer an equality test (using "``==``") in cases like this. + ``CharField`` ------------- -- cgit v1.3