summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2005-08-26 04:06:18 +0000
committerAdrian Holovaty <adrian@holovaty.com>2005-08-26 04:06:18 +0000
commit939e2bccd536c69681946901348bf35c909aad9f (patch)
treefd79128a4a4ef9515e1a9d65d275b5fcfe770456
parent25264c86048d442a4885dfebae94510e2fa0c1e4 (diff)
Changed django-admin.py inspectdb to output new-style model syntax
git-svn-id: http://code.djangoproject.com/svn/django/trunk@550 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/core/management.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/django/core/management.py b/django/core/management.py
index 9e3c84e9f1..69188b53fe 100644
--- a/django/core/management.py
+++ b/django/core/management.py
@@ -455,30 +455,33 @@ def inspectdb(db_name):
yield ''
for table_name in db.get_table_list(cursor):
yield 'class %s(meta.Model):' % table2model(table_name)
- yield ' db_table = %r' % table_name
- yield ' fields = ('
try:
relations = db.get_relations(cursor, table_name)
except NotImplementedError:
relations = {}
cursor.execute("SELECT * FROM %s LIMIT 1" % table_name)
for i, row in enumerate(cursor.description):
+ column_name = row[0]
if relations.has_key(i):
rel = relations[i]
rel_to = rel[1] == table_name and "'self'" or table2model(rel[1])
- field_desc = 'meta.ForeignKey(%s, name=%r' % (rel_to, row[0])
+ if column_name.endswith('_id'):
+ field_desc = '%s = meta.ForeignKey(%s' % (column_name[:-3], rel_to)
+ else:
+ field_desc = '%s = meta.ForeignKey(%s, db_column=%r' % (column_name, rel_to, column_name)
else:
try:
field_type = db.DATA_TYPES_REVERSE[row[1]]
except KeyError:
field_type = 'TextField'
- yield " # The model-creator script used TextField by default, because"
- yield " # it couldn't recognize your field type."
- field_desc = 'meta.%s(%r' % (field_type, row[0])
+ yield " # The model-creator script used TextField by default, because"
+ yield " # it couldn't recognize your field type."
+ field_desc = '%s = meta.%s(' % (column_name, field_type)
if field_type == 'CharField':
- field_desc += ', maxlength=%s' % (row[3])
- yield ' %s),' % field_desc
- yield ' )'
+ field_desc += 'maxlength=%s' % (row[3])
+ yield ' %s)' % field_desc
+ yield ' class META:'
+ yield ' db_table = %r' % table_name
yield ''
inspectdb.help_doc = "Introspects the database tables in the given database and outputs a Django model module."
inspectdb.args = "[dbname]"