From 1a9f13df59e83eb6e0c20f96d878826519eca62a Mon Sep 17 00:00:00 2001 From: Anubhav Joshi Date: Thu, 19 Dec 2013 03:01:48 +0530 Subject: [PATCH] Fixed #21478 -- Corrected docs for when Field.db_type() is called. --- docs/howto/custom-model-fields.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 6054a83f10..b7bcefad53 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -458,11 +458,14 @@ For example:: else: return 'timestamp' -The :meth:`.db_type` method is only called by Django when the framework +The :meth:`.db_type` method is called by Django when the framework constructs the ``CREATE TABLE`` statements for your application -- that is, -when you first create your tables. It's not called at any other time, so it can -afford to execute slightly complex code, such as the -``connection.settings_dict`` check in the above example. +when you first create your tables. It is also called when constructing a +``WHERE`` clause that includes the model field -- that is, when you retrieve data +using QuerySet methods like ``get()``, ``filter()``, and ``exclude()`` and have +the model field as an argument. It's not called at any other time, so it can afford to +execute slightly complex code, such as the ``connection.settings_dict`` check in +the above example. Some database column types accept parameters, such as ``CHAR(25)``, where the parameter ``25`` represents the maximum column length. In cases like these,