Tôi có hai lớp trong tập tin models.py
tôi:Làm thế nào để loại bỏ trường ID dư thừa trong bảng ManyToMany được tạo tự động trong Django?
class Person:
person_name = models.CharField(max_length = 50)
class Course:
course_name = models.CharField(max_length = 50)
course_person = models.ManyToManyField(Person)
Trong ví dụ sửa đổi của tôi, một người là mất nhiều khóa học và một khóa học được thực hiện bởi nhiều người, vì thế ManyToMany.
Khi tôi cho phép Django tự động tạo bảng của tôi, tôi nhận thêm trường ID
. Tôi muốn tự động phát hiện bảng số nhiều là person_course
để bao gồm hai phím tổng hợp person_id
và chỉ course_id
. Lưu ý: Cả hai trường đều được tạo tự động, các trường được tăng tự động.
Tôi cũng đã thử xác định lớp ManyToMany của mình và cố gắng liên kết các trường bằng cách sử dụng từ khóa through=
, nhưng điều đó không giúp ích gì.
Tôi đã yêu cầu Google nhưng không có nhiều trợ giúp. Nhiều số thiên tài trong bạn có thể cung cấp một số gợi ý :)
Cảm ơn bạn đã nhập. Vâng, đó là một hạn chế từ Django không để có thể làm điều đó. Django cố gắng làm cho cuộc sống dễ dàng. Tôi sử dụng để thiết kế cơ sở dữ liệu từ đầu để sử dụng trong các ứng dụng của tôi và tôi không hạnh phúc như vậy mà Django cố gắng làm tất cả mọi thứ riêng của mình. Ít nhất, tôi không có nhiều điều khiển trên những thứ _some_, như không tạo ra trường ID dự phòng. Tôi sử dụng MySQL bàn làm việc để mô tả trực quan cơ sở dữ liệu của tôi, và trường ID bổ sung này không có vẻ tốt. Dù sao, vì nó không ảnh hưởng đến logic ứng dụng, tôi có thể sống với điều đó :) – shailenTJ