2009-03-24 41 views
6

Tôi đang sử dụng cơ sở dữ liệu được tạo bằng tay (Postgres) với Django. Với "inspectdb" tôi đã có thể tự động tạo ra một mô hình cho nó. Vấn đề là một số bảng có nhiều khóa chính (đối với quan hệ nhiều-nhiều) và chúng không thể truy cập được qua Django.Sử dụng cơ sở dữ liệu 'cũ' với django

Cách tốt nhất để truy cập các bảng này là gì?

Trả lời

4

Không có cách nào để sử dụng các khóa chính kết hợp trong ORM của Django kể từ bây giờ (lên đến v1.0.2).

tôi chỉ có thể nghĩ về ba giải pháp/cách giải quyết:

  1. Có một fork của django với một bản vá pk tổng hợp tại github mà bạn có thể muốn thử.
  2. Bạn có thể sử dụng SQLAlchemy cùng với Django.
  3. Bạn phải thêm một trường khóa chính của trường vào các bảng đó.
+2

+1: Sửa cơ sở dữ liệu của bạn - không được có nhiều khóa chính trong bảng bất kỳ. –

+0

@ S.Lott: Mmm, đó là loại bình luận chỉ là yêu cầu khuấy động toàn bộ cuộc tranh luận tự nhiên và thay thế chìa khóa. – Powerlord

+0

tùy chọn 3 có lẽ là dễ nhất ... đó là cơ sở dữ liệu cũ –

0

Django không hỗ trợ cho many-to-many relationships. Nếu bạn muốn sử dụng một bảng trợ giúp để quản lý các mối quan hệ này, thì ManyToManyField nhận một đối số thông qua chỉ định bảng để sử dụng. Bạn không thể mô hình hóa bất cứ điều gì phức tạp một cách khủng khiếp theo cách này, nhưng nó là tốt cho hầu hết các ứng dụng đơn giản.

Các vấn đề liên quan