Я пробовал с утра и прочитал все сообщения здесь и по всему о доступе к нескольким базам данных в django безрезультатно. Я ищу для доступа к другой базе данных на том же сервере, и я включил базы данных в settings.py с псевдонимами. Когда я пытаюсь использовать use() в наборе запросов, я получаю сообщение об ошибке, что глобальное имя «Имя объекта» не существует. Я использую postgresql 9.1 с django 1.4Доступ к нескольким базам данных в Django с использованием()
Есть ли что-нибудь, что мне нужно для импорта для этого? Он не работает для меня ни в консоли (python manage.py shell), ни в представлениях.
Вот настройки базы данных из settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'testing', # Or path to database file if using sqlite3.
'USER': 'xxxx', # Not used with sqlite3.
'PASSWORD': 'xxxx', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': 'xxxx', # Set to empty string for default. Not used with sqlite3.
},
'app_data': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'applications', # Or path to database file if using sqlite3.
'USER': 'xxxx', # Not used with sqlite3.
'PASSWORD': 'xxxx', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': 'xxxx', # Set to empty string for default. Not used with sqlite3.
},
'ppp_data': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'platform', # Or path to database file if using sqlite3.
'USER': 'xxxx', # Not used with sqlite3.
'PASSWORD': 'xxxx', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': 'xxxx', # Set to empty string for default. Not used with sqlite3.
}
}
Вот код из консоли:
>>> MyModel.objects.using('app_data').all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'MyModel' is not defined
Здесь ошибка с точки зрения:
NameError at /myapp/view
global name 'MyModel' is not defined
P аренда помощь!
Отредактировано: Just to give a little background У меня есть 3 разных приложения, работающих на одном сервере с разными базами данных, и я хотел получить доступ к записям в разных приложениях только для просмотра. 3 приложения - приложение, ppp и тестирование, и я пытаюсь получить доступ к данным приложения и ppp из моего тестового приложения.
Похоже, вам не хватает импорта для 'MyModel' в ваших представлениях. –
Каким будет синтаксис для импорта «MyModel» из другой базы данных на другой модели? – us1415
Я попытался сделать 'из app.MyModel.models import *' в представлении в тестовом приложении, но не работает. – us1415