Maison  >  Questions et réponses  >  le corps du texte

python - Référence de clé étrangère du modèle Django

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

黄舟黄舟2711 Il y a quelques jours551

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-05-18 10:48:04

    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

    répondre
    0
  • Annulerrépondre