2009-03-24 10 views
6

私はDjangoで手作りの(Postgres)データベースを使用しています。 "inspectdb"を使うと、自動的にモデルを作成することができました。問題は、いくつかのテーブルが(多対多関係の)複数の主キーを持ち、Djangoからアクセスできないということです。djangoで 'old'データベースを使用する

これらのテーブルにアクセスするにはどうすればよいですか?

答えて

4

現在、DjangoのORMで複合主キーを使用する方法はありません(v1.0.2まで)。

私は3つしか解決策/回避策を考えることができます。

  1. ジャンゴのforkは、あなたがしようとする場合がありますgithubので複合PKパッチであります。
  2. SQLAlchemyとDjangoを併用できます。
  3. これらのテーブルには、単一フィールドの主キーフィールドを追加する必要があります。
+2

+1:データベースを修正します。テーブルに複数の主キーが存在しないようにする必要があります。 –

+0

@ S.Lott:Mmm、そのようなコメントは、自然対代理キーの議論全体をかき混ぜるよう求めているだけです。 – Powerlord

+0

オプション3はおそらく最も簡単です...とにかく古いデータベースです –

0

Djangoはmany-to-many relationshipsをサポートしています。ヘルパテーブルを使用してこの関係を管理する場合、ManyToManyFieldは、使用するテーブルを指定するthrough引数をとります。このように複雑なものをモデリングすることはできませんが、ほとんどの単純なアプリケーションには適しています。

関連する問題