diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2006-06-21 03:39:47 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2006-06-21 03:39:47 +0000 |
| commit | ba22f55aa2766cb6a0b58c0e1be6164a48adcb02 (patch) | |
| tree | 109d93cd063d4b8c85b6caa0b124088b7a722628 | |
| parent | 0e92f706025606e27fb4a7fd593914b172f84c76 (diff) | |
Fixed #1928 -- Correctly create foreign key references when there are multiple
keys on multiple models. Based on a patch from Geert Vanderkelen and some
diagnosis from hornero.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3182 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/core/management.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/django/core/management.py b/django/core/management.py index bf48b2bd89..a163c83c5d 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -106,7 +106,11 @@ def get_sql_create(app): for klass in app_models: output, references = _get_sql_model_create(klass, models_output) final_output.extend(output) - pending_references.update(references) + for refto, refs in references.items(): + try: + pending_references[refto].extend(refs) + except KeyError: + pending_references[refto] = refs final_output.extend(_get_sql_for_pending_references(klass, pending_references)) # Keep track of the fact that we've created the table for this model. models_output.add(klass) @@ -458,7 +462,11 @@ def syncdb(): sql, references = _get_sql_model_create(model, seen_models) seen_models.add(model) created_models.add(model) - pending_references.update(references) + for refto, refs in references.items(): + try: + pending_references[refto].extend(refs) + except KeyError: + pending_references[refto] = refs sql.extend(_get_sql_for_pending_references(model, pending_references)) print "Creating table %s" % model._meta.db_table for statement in sql: |
