Simplified the indent level in management.py _get_sql_model_create() by using a 'continue' statement rather than nesting everything in an 'if'

git-svn-id: http://code.djangoproject.com/svn/django/trunk@5726 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2007-07-20 06:34:26 +00:00
parent ac2b9f2a3f
commit 0827f4ac7e
1 changed files with 28 additions and 25 deletions

View File

@ -161,31 +161,34 @@ def _get_sql_model_create(model, known_models=set()):
for f in opts.fields: for f in opts.fields:
col_type = f.db_type() col_type = f.db_type()
tablespace = f.db_tablespace or opts.db_tablespace tablespace = f.db_tablespace or opts.db_tablespace
if col_type is not None: if col_type is None:
# Make the definition (e.g. 'foo VARCHAR(30)') for this field. # Skip ManyToManyFields, because they're not represented as
field_output = [style.SQL_FIELD(backend.quote_name(f.column)), # database columns in this table.
style.SQL_COLTYPE(col_type)] continue
field_output.append(style.SQL_KEYWORD('%sNULL' % (not f.null and 'NOT ' or ''))) # Make the definition (e.g. 'foo VARCHAR(30)') for this field.
if f.unique and (not f.primary_key or backend.allows_unique_and_pk): field_output = [style.SQL_FIELD(backend.quote_name(f.column)),
field_output.append(style.SQL_KEYWORD('UNIQUE')) style.SQL_COLTYPE(col_type)]
if f.primary_key: field_output.append(style.SQL_KEYWORD('%sNULL' % (not f.null and 'NOT ' or '')))
field_output.append(style.SQL_KEYWORD('PRIMARY KEY')) if f.unique and (not f.primary_key or backend.allows_unique_and_pk):
if tablespace and backend.supports_tablespaces and (f.unique or f.primary_key) and backend.autoindexes_primary_keys: field_output.append(style.SQL_KEYWORD('UNIQUE'))
# We must specify the index tablespace inline, because we if f.primary_key:
# won't be generating a CREATE INDEX statement for this field. field_output.append(style.SQL_KEYWORD('PRIMARY KEY'))
field_output.append(backend.get_tablespace_sql(tablespace, inline=True)) if tablespace and backend.supports_tablespaces and (f.unique or f.primary_key) and backend.autoindexes_primary_keys:
if f.rel: # We must specify the index tablespace inline, because we
if f.rel.to in known_models: # won't be generating a CREATE INDEX statement for this field.
field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \ field_output.append(backend.get_tablespace_sql(tablespace, inline=True))
style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)) + ' (' + \ if f.rel:
style.SQL_FIELD(backend.quote_name(f.rel.to._meta.get_field(f.rel.field_name).column)) + ')' + if f.rel.to in known_models:
backend.get_deferrable_sql() field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \
) style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)) + ' (' + \
else: style.SQL_FIELD(backend.quote_name(f.rel.to._meta.get_field(f.rel.field_name).column)) + ')' +
# We haven't yet created the table to which this field backend.get_deferrable_sql()
# is related, so save it for later. )
pr = pending_references.setdefault(f.rel.to, []).append((model, f)) else:
table_output.append(' '.join(field_output)) # We haven't yet created the table to which this field
# is related, so save it for later.
pr = pending_references.setdefault(f.rel.to, []).append((model, f))
table_output.append(' '.join(field_output))
if opts.order_with_respect_to: if opts.order_with_respect_to:
table_output.append(style.SQL_FIELD(backend.quote_name('_order')) + ' ' + \ table_output.append(style.SQL_FIELD(backend.quote_name('_order')) + ' ' + \
style.SQL_COLTYPE(models.IntegerField().db_type()) + ' ' + \ style.SQL_COLTYPE(models.IntegerField().db_type()) + ' ' + \