2

したがって、私はDjangoデータベース全体に少し慣れていないため、ここで説明されているDjangoルーターを完全に理解していないだけかもしれません: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#データベースルーター ですが、私の人生では、2つのデータベースをリンクする方法がわかりません。私の設定が違うからでしょうか?2 つのデータベースは別個の Django プロジェクト フォルダーであり、両方とも別個の Postgre データベースを持っています。おそらく問題は、それらが異なるフォルダーにあるために発生していると思いますが、パス名を適切に含めていませんか?

これが私が今持っているものです:

settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', 
        'NAME': 'ClothesWashers',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
        },
    'RECS': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'RECS',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
        }
}

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'django_extensions',
    'ClothesWasher_Purchaser',
    )

DATABASE_ROUTERS = ['ClothesWashers.db_routers.RECS_Router',]

db_routers.py:

class RECS_Router(object):
    def db_for_read(self, model, **hints):
        if model._meta.app_label == 'RECS_Data':
            return 'RECS'
        return 'default'

私ができるようにしたいのは、次のようにして RECS データベースの RECS_Data アプリを呼び出し、そこから読み取ることができるようにすることだけです。

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'ClothesWashers.settings'
from RECS_Data.models import RecsData
g = RecsData._meta.fields

私を助けてくれる人に感謝します!

4

1 に答える 1

1

を使用してセカンダリ データベースを読み取ることができると思います。

このようにしてみてください。

i.e RecsData.using("RECS")._meta.fields

詳細については、https://docs.djangoproject.com/en/dev/topics/db/multi-db/#manually-selecting-a-databaseを参照してください。

于 2014-06-23T08:46:33.063 に答える