Commit 8560a2c0 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

Teach inspectdb to handle SQL column names that are digits.

There's no accounting for taste in the way some people name columns,
apparently. Create a column with a name of "1" and inspectdb will still
produce valid Python code now. Fixed #16536. Thanks tereaom and
danodonovan.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16641 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent e3cd0e67
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -101,6 +101,12 @@ class Command(NoArgsCommand):
                    att_name += '_field'
                    comment_notes.append('Field renamed because it was a Python reserved word.')

                if att_name.isdigit():
                    att_name = 'number_%d' % int(att_name)
                    extra_params['db_column'] = unicode(column_name)
                    comment_notes.append("Field renamed because it wasn't a "
                        "valid Python identifier.")

                # Don't output 'id = meta.AutoField(primary_key=True)', because
                # that's assumed if it doesn't exist.
                if att_name == 'id' and field_type == 'AutoField(' and extra_params == {'primary_key': True}: