2017-05-16 3 views
0

DB를 쿼리하고 보고서를 반환하는 Django 사이트를 세우려고합니다. 가져올 필요가있는 5 개의 기존 DB가 있습니다. 기본값으로 설정하고 inspectdb를 실행했습니다. 이것은 올바르게 가져 왔고 지금은 모두 설정됩니다. 나는 다음에 대해 inspectdb를 실행했는데, 모델을 얻었다. 그러나 관리자 패널의 링크를 클릭하면 오류가 발생한다. 내 기본 db 이름은 app2이고, 작업중인 두 번째 db는 cucm입니다. 거기에 오류가 없다는 app2.cucm에서 DB를 - 왜 그냥 CJA로가는 대신 app2.cucm에 가려고 장고는 ?????? settings.py 파일Django : 다중 데이터베이스를 가져올 수 없습니다.

DATABASES = { 
     'cucm': { 
      'NAME': 'CUCM' 
      'ENGINE': 'django.db.backends.mysql', 
      'USER': 'user' 
      'PASSWORD': 'PASSWORD' 
      'HOST': 'IPADDRESS' 
      'PORT': '111111' 
     }, 

'default': { 
    'NAME': 'app2', 
    'ENGINE': 'django.db.backends.mysql', 
    'USER': 'user', 
    'PASSWORD': 'PASSWORD', 
    'HOST': 'IPADDRESS', 
    'PORT': '1111', 
    }, 
} 

전체 오류가 있으므로 다음과 같습니다

경로 이름 '/root/IPNV/django-test/src/reports/models.py'이 시계의 0x7fbe145cef50에서 > dir = False>가 변경되어 을 업데이트 할 수 없으므로 더 이상 신뢰할 수 없습니다. 이 을 수정하려면 오류가 발생한 상위 디렉토리 사이에서만 디렉토리/파일을 이동하는 동안 오류가 발생합니다 (이 경우 예 : ). '/ root/IPNV/django-test/src/reports'에 시계를 넣으시오.

위의 구문이 완벽하지 않다는 것을 알고, 빨리 재 입력했다. 모든 DB가 동일한 호스트에 있다는 것은 주목할 가치가 있습니다. 그래서 모든 DB에 대한 모든 필드는 이름

제외하고는 동일합니다 이것은 오류 장고 관리자 패널 형태 : 예외 값 :

(1146, "테이블 'app2.CDR'이 (가) 없습니다")

문제는 라우팅에 있다고 생각합니다. 'CDR'은 cucm db의 app2가 아닌 테이블입니다. db 라우팅을 아직 만들지 않았습니다. 나는 디폴트가 작동하기를 바라고 있었다.

+0

데이터베이스 구성과 전체 오류 및 추적을 표시하십시오. –

+0

여기에 settings.py 파일의 configs가 있습니다. – Joe

답변

0

아마도 db를 호출하는 방법과 관계가있다. 다중 dbs가있는 경우, 사용중인 dbs를 명시해야합니다. 예를 들어, 모델이 사람 인 경우 다음과 같이 말할 수 있습니다.

Person.objects.using(dbname) 
+0

그래, 문제가있는 것처럼 들리지만 그 코드 행은 어디에 입력해야합니까 ?? – Joe

+0

db에 쿼리를 작성하는 위치. 따라서 Person Model의 모든 사람들의 목록을 인쇄하고 db1을 사용하고자하는 경우에는 Person.objects.using (db1) .all()이라고 말하면됩니다. dbs 사이를 전환하려면 해당보기에 대해 양식을 사용하고 사용자 입력을 using 호출에 전달할 수 있습니다. – mewpeter

+0

나는 더 좋은 방법이 있어야하는 것처럼 느낍니다. 내가 관리자 패널에서 일하고 있기 때문에 내 견해가 실제로 구축되지 않았습니다. 모든 것이 '기본'db로 완벽하게 작동합니다. – Joe

관련 문제