2011-06-30 9 views
7

Djangoプロジェクトの一部ではないデータベーステーブルからデータを選択したいとします。私は、設定ファイルにデータベース接続情報を追加し、私はそれに対してデータをプルするために生のSQLクエリを行うことができます。しかし、私はそのテーブルのモデルを作成し、他のDjangoモデルデータと同じようにデータにアクセスできるようにしたいと思います。Django:別のデータベースからデータを取得する

これは可能ですか?私はその文書を見つけることができます。

答えて

10

Django: Multiple Databasesページでは、このトピックに関する良い情報が含まれています。 settings.pyでデータベースを設定したら、.using()を使用して、照会したいデータベースを指定することができます。ドキュメントから

例:

>>> # This will run on the 'default' database. 
>>> Author.objects.all() 

>>> # So will this. 
>>> Author.objects.using('default').all() 

>>> # This will run on the 'other' database. 
>>> Author.objects.using('other').all() 
+0

その後、著者は何ですか? Authorモデルはmodels.pyで定義されていません。 – user1881957

+1

この場合の 'Author'は、照会したいオブジェクトのプレースホルダーです。私は単に、リンクされたページのドキュメントの例をコピーしました。任意のオブジェクトを使用できます。 –

+0

このような生のクエリを実行する方法を教えてもらえますか?例:Author.objects.using( 'other')。raw( "Select * from table1") –

3

あなたは自分のクエリを行うために

SomeObject.objects.using('database_name').all() 

を使用する必要があり、必ず

関連する問題