ho due classi nel mio file models.py
:Come rimuovere il campo ID ridondante nella tabella ManyToMany generata automaticamente in Django?
class Person:
person_name = models.CharField(max_length = 50)
class Course:
course_name = models.CharField(max_length = 50)
course_person = models.ManyToManyField(Person)
Nel mio esempio modificato, una persona è prende molti corsi e un corso è preso da molte persone, da qui ManyToMany.
Quando lascio Django generare automaticamente il mio tavolo, ottengo un campo supplementare ID
. Desidero che la tabella autogenerata di person_course
sia composta da due chiavi composite person_id
e course_id
. Nota: entrambi sono campi auto-generati e auto-incrementati.
Ho anche cercato di definire la mia classe ManyToMany e ha tentato di collegare i campi utilizzando la parola chiave through=
, ma che non ha aiutato.
Ho chiesto a Google ma senza molto aiuto. Molti alcuni geni tra di voi in grado di fornire qualche suggerimento :)
Grazie per l'input. Bene, è una limitazione di Django non essere in grado di farlo. Django cerca di semplificare la vita. Ho usato per progettare database da zero per l'utilizzo nelle mie app e non sono così felice che Django cerchi di fare tutto da solo. Almeno, non ho così tanto controllo su _some_ cose, come non creare il campo ID ridondante. Uso il workbench MySQL per rappresentare visivamente i miei database, e questo campo extra ID non sembra buono. Comunque, dal momento che non influenza la logica dell'app, posso conviverci :) – shailenTJ