From 2667ead8850cb767c798149f781449c5b37d7367 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sun, 15 Jan 2006 05:48:13 +0000 Subject: [PATCH] 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 --- AUTHORS | 1 + django/core/management.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index b7c0994f0c..d6547cd919 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ answer newbie questions, and generally made Django that much better: akaihola Andreas David Ascher + Arthur James Bennett Paul Bissex Simon Blanchard diff --git a/django/core/management.py b/django/core/management.py index 9aff69119a..ce86e9959a 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -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."