python - Référence de clé étrangère du modèle Django
黄舟
黄舟 2017-05-18 10:46:04
0
1
582

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é ?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(1)
Ty80

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal