From 8560a2c08030d67e234112b6951279de205b4778 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Mon, 22 Aug 2011 02:46:59 +0000 Subject: [PATCH] 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 --- django/core/management/commands/inspectdb.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/django/core/management/commands/inspectdb.py b/django/core/management/commands/inspectdb.py index 5f0e278c61a..90272dbcdda 100644 --- a/django/core/management/commands/inspectdb.py +++ b/django/core/management/commands/inspectdb.py @@ -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}: