Fixed #1328 -- Improved 'inspectdb' to handle Python reserved words as field names. Also updated docs.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2271 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-02-04 20:08:30 +00:00
parent ee484f1c48
commit 9423c4e4a8
3 changed files with 50 additions and 16 deletions

View file

@ -92,6 +92,24 @@ Use this if you have a legacy database with which you'd like to use Django.
The script will inspect the database and create a model for each table within
it.
As you might expect, the created models will have an attribute for every field
in the table. Note that ``inspectdb`` has a few special cases in its field-name
output:
* If ``inspectdb`` cannot map a column's type to a model field type, it'll
use ``TextField`` and will insert the Python comment
``'This field type is a guess.'`` next to the field in the generated
model.
* **New in Django development version.** If the database column name is a
Python reserved word (such as ``'pass'``, ``'class'`` or ``'for'``),
``inspectdb`` will append ``'_field'`` to the attribute name. For
example, if a table has a column ``'for'``, the generated model will have
a field ``'for_field'``, with the ``db_column`` attribute set to
``'for'``. ``inspectdb`` will insert the Python comment
``'Field renamed because it was a Python reserved word.'`` next to the
field.
This feature is meant as a shortcut, not as definitive model generation. After
you run it, you'll want to look over the generated models yourself to make
customizations. In particular, you'll need to do this: