Mam dwóch klas w moim pliku models.py
:Jak usunąć nadmiarowe pole ID w automatycznie generowanym tabeli ManyToMany w Django?
class Person:
person_name = models.CharField(max_length = 50)
class Course:
course_name = models.CharField(max_length = 50)
course_person = models.ManyToManyField(Person)
w moim zmodyfikowanym przykład, jedna osoba wykonuje wiele kursów i jeden kurs jest podejmowana przez wielu ludzi, stąd ManyToMany.
Kiedy pozwolę Django automatycznie generować mój stół, otrzymuję dodatkowe pole ID
. Chcę, aby tabela generowana automatycznie generowana przez person_course
składała się tylko z dwóch kluczy złożonych: person_id
i course_id
. Uwaga: Oba są automatycznie generowane, automatycznie zwiększane pola.
Próbowałem również zdefiniować moją klasę ManyToMany i próbowałem połączyć pola za pomocą słowa kluczowego through=
, ale to nie pomogło.
Poprosiłem Google, ale bez dużej pomocy. Wiele niektórzy wśród was geniusze mogą zapewnić pewną podpowiedź :)
Dziękujemy za dane wejściowe. Cóż, ograniczeniem Django jest nie móc tego zrobić. Django stara się ułatwić życie. Kiedyś projektowałem bazy danych od zera do użytku w moich aplikacjach i nie jestem tak szczęśliwy, że Django próbuje zrobić wszystko sam. Przynajmniej nie mam tak dużo kontroli nad rzeczami, np. Nie tworząc pola redundantnego ID. Używam środowiska roboczego MySQL do wizualnego przedstawiania moich baz danych, a to dodatkowe pole identyfikatora nie wygląda dobrze. W każdym razie, ponieważ nie ma to wpływu na logikę aplikacji, mogę z tym żyć :) – shailenTJ