Commit ba22f55a authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

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
parent 0e92f706
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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: