Fixed #1165 -- Fixed bug in generated CREATE TABLE statements where a primary key related to a PositiveIntegerField or PositiveSmallIntegerField. Thanks, avandorp@gmail.com

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1970 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-01-15 05:48:13 +00:00
parent e449e5c805
commit 2667ead885
2 changed files with 6 additions and 4 deletions

View File

@ -34,6 +34,7 @@ answer newbie questions, and generally made Django that much better:
akaihola
Andreas
David Ascher <http://ascher.ca/>
Arthur <avandorp@gmail.com>
James Bennett
Paul Bissex <http://e-scribe.com/>
Simon Blanchard

View File

@ -53,10 +53,11 @@ def _get_contenttype_insert(opts):
def _is_valid_dir_name(s):
return bool(re.search(r'^\w+$', s))
# If the foreign key points to an AutoField, the foreign key should be an
# IntegerField, not an AutoField. Otherwise, the foreign key should be the same
# type of field as the field to which it points.
get_rel_data_type = lambda f: (f.get_internal_type() == 'AutoField') and 'IntegerField' or f.get_internal_type()
# If the foreign key points to an AutoField, a PositiveIntegerField or a
# PositiveSmallIntegerField, the foreign key should be an IntegerField, not the
# referred field type. Otherwise, the foreign key should be the same type of
# field as the field to which it points.
get_rel_data_type = lambda f: (f.get_internal_type() in ('AutoField', 'PositiveIntegerField', 'PositiveSmallIntegerField')) and 'IntegerField' or f.get_internal_type()
def get_sql_create(mod):
"Returns a list of the CREATE TABLE SQL statements for the given module."