2009-02-12 28 views

Trả lời

17

Django sử dụng một số phép thuật python để xác định mối quan hệ giữa các mô hình, một số trong đó bao gồm việc sử dụng tên của các mô hình trong các mối quan hệ (đó là nơi 'test' trong ' test__set 'đến từ.) Điều gì đang xảy ra, tôi đoán, là nó đang cố gắng đặt "test__set" trong mô hình Ví dụ hai lần, một lần cho mỗi khóa ngoại bạn đã xác định.

Thông báo lỗi gợi ý điều gì đó cần thử: xác định đối số related_name (ghi đè một trong những 'test_set') mà nó có thể sử dụng thay vì tự động tạo hai tên xung đột.

Thông tin thêm here

+2

Liên kết thông tin khác này không còn hoạt động –

92

Hãy thử sử dụng related_name:

class Test(models.model): 
    example1 = models.ForeignKey('Example', related_name='example1') 
    example2 = models.ForeignKey('Example', related_name='example2') 
+1

Tôi có hai mô hình trong ứng dụng cố gắng thực hiện việc này. Cách thứ hai hoạt động tốt với phương thức này: nó có các khóa ngoài cho mô hình đầu tiên. Mô hình đầu tiên không hoạt động. Có lẽ đó là bởi vì nó đề cập đến một mô hình nhập khẩu thay thế. Có ai đã thực hiện công việc này với các mẫu được nhập không? – SpiRail

7

Chỉ cần làm những gì được thông báo lỗi cho bạn biết phải làm gì, và nếu bạn không chắc chắn điều đó có nghĩa, tham khảo tài liệu cho related_name.

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