Python – Django-Modell ForeignKey-Referenz
黄舟
黄舟 2017-05-18 10:46:04
0
1
522

Ich erwarte die folgenden Effekte, wenn ich Django zum Erstellen einer Datenbank verwende

Tabelle 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)
)

Tabelle 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)
)

Der Fremdschlüssel von Tabelle 2 bezieht sich auf Id_P von Tabelle 1, nicht auf Nachname

Aber in Django

Id_P = models.ForeignKey('Persons',db_column='Id_P')

So geschrieben ordnet Django es automatisch dem Primärschlüssel der Personentabelle zu, nicht dem Id_P, den ich erwartet habe

Bitte sagen Sie mir, wie ich es umschreiben kann, um den gewünschten Effekt zu erzielen.

黄舟
黄舟

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

Antworte allen(1)
Ty80

看来db_column参数不能指定使用哪个字段作外键(估计楼主使用过sqlalchemy),

查看下django ForeignKey 文档有这个参数

ForeignKey.to_field
The field on the related object that the relation is to. By default, Django uses the primary key of the related object. If you reference a different field, that field must have unique=True.

所以改db_column为to_field就行了

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!