Gorm hat viele Tabellen AutoMigrate () ärgert sich über die Notwendigkeit, einen Fremdschlüssel zu definieren

Siehe hat viele in der Dokumentation

https://gorm.io/docs/has_many.html

Nachtrag

Es war grundsätzlich falsch. Ich hoffe es hilft jemandem, der ähnliche Fehler macht.

Fehlerinhalt

// Vote model
type Vote struct {
	gorm.Model
	ID          uint
	Title       string
	Description string
	WorkSheets  []Worksheet
}

// Worksheet model
type Worksheet struct {
	gorm.Model
	ID         uint
	Text       string
	VoteNumber uint
}

In den Arbeitsblättern von ~~ Vote sind keine externen Schlüssel angegeben Dann ... ~~

invalid field found for struct main.Vote's field WorkSheets,
need to define a foreign key for relations or it need to implement the Valuer/Scanner interface

~~ Ich werde wütend, wenn ich einen externen Schlüssel definiere. ~~

Verbesserungscode

// Vote model
type Vote struct {
	gorm.Model
	ID          uint
	Title       string
	Description string
    //Definition des externen Schlüssels hinzugefügt
	WorkSheets  []Worksheet `gorm:"foreignKey:ID"`
}

// Worksheet model
type Worksheet struct {
	gorm.Model
	ID         uint
	Text       string
	VoteNumber uint
}

~~ Arbeitsblatt-ID wird als externer Schlüssel verwendet ~~

Echte Lösung

// Vote model
type Vote struct {
	gorm.Model
	Title       string
	Description string
	WorkSheets  []Worksheet
}

// Worksheet model
type Worksheet struct {
	gorm.Model
	Text       string
  //hinzufügen
	VoteID     int
	VoteNumber int
}

Es scheint notwendig zu sein, ein Feld für den Primärschlüssel auf der vielen Seite von has many hinzuzufügen. Ich wurde völlig missverstanden.

Recommended Posts

Gorm hat viele Tabellen AutoMigrate () ärgert sich über die Notwendigkeit, einen Fremdschlüssel zu definieren
Die Geschichte, dass es notwendig war, on_delete anzugeben, nachdem der externe Schlüssel in der Modelländerung von Django angegeben wurde