Je m'attends à obtenir les effets suivants lors de l'utilisation de Django pour créer une base de données
Tableau 1
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P),
PRIMARY KEY (LastName)
)
Tableau 2
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
La clé étrangère du tableau 2 est liée à l'Id_P du tableau 1, pas à LastName
Mais dans Django
Id_P = models.ForeignKey('Persons',db_column='Id_P')
Écrit ainsi, Django l'associera automatiquement à la clé primaire de la table Personnes, pas à l'Id_P auquel je m'attendais
Veuillez me dire comment le réécrire pour obtenir l'effet souhaité ?
Il semble que le paramètre db_column ne puisse pas spécifier quel champ utiliser comme clé étrangère (je suppose que l'affiche a utilisé sqlalchemy),
Vérifiez le document Django ForeignKey pour ce paramètre
ForeignKey.to_field
Le champ de l'objet associé auquel la relation est liée. Par défaut, Django utilise la clé primaire de l'objet associé. Si vous référencez un champ différent, ce champ doit avoir unique=True.
Alors remplacez simplement db_column par to_field