2009-03-24 3 views
6

저는 Django에서 직접 만든 (Postgres) 데이터베이스를 사용하고 있습니다. "inspectdb"를 사용하여 모델을 자동으로 만들 수있었습니다. 문제는 일부 테이블은 (다 대다 관계에 대해) 여러 개의 기본 키를 가지고 있으며 장고를 통해 액세스 할 수 없다는 것입니다.django에서 'old'데이터베이스 사용

이 테이블에 액세스하는 가장 좋은 방법은 무엇입니까?

답변

4

Django의 ORM (현재 v1.0.2까지)에서 복합 기본 키를 사용할 방법이 없습니다.

는 난 단지 세 가지 솔루션/해결 방법을 생각할 수 있습니다

  1. 는 당신이 시도 할 수 있습니다 GitHub의에서 복합 PK 패치 장고의 fork 있습니다.
  2. SQLAlchemy을 장고와 함께 사용할 수 있습니다.
  3. 이러한 테이블에 단일 필드 기본 키 필드를 추가해야합니다.
+2

+1 : 데이터베이스 수정 - 테이블에 기본 키가 여러 개 있어서는 안됩니다. –

+0

@ S.Lott : 음, 그런 종류의 논평은 전체 자연 대 대리 키 토론을 자극하기 만하면됩니다. – Powerlord

+0

옵션 3은 아마도 가장 쉽습니다 ... 어쨌든 오래된 데이터베이스입니다 –

0

장고는 many-to-many relationships을 지원합니다. 이 관계를 관리하기 위해 도우미 테이블을 사용하려는 경우 ManyToManyField는 사용할 테이블을 지정하는 through 인수를 취합니다. 이런 식으로 끔찍하게 복잡한 것을 모델링 할 수는 없지만, 대부분의 간단한 응용 프로그램에는 좋습니다.

관련 문제