[英]Inserting into MySQL table using peewee raises “unknown column” exception
我有以下腳本:
from peewee import *
db = MySQLDatabase('database', user='root')
class BaseModel(Model):
class Meta:
database = db
class Locations(BaseModel):
location_id = PrimaryKeyField()
location_name = CharField()
class Units(BaseModel):
unit_id = PrimaryKeyField()
unit_num = IntegerField()
location_id = ForeignKeyField(Locations, related_name='units')
db.connect()
for location in Locations.select():
for pod_num in range (1, 9):
unit = Units.create(unit_num=pod_num, location_id=location.location_id)
表位置有幾行,表單位為空。 當我嘗試啟動它時,總是出現異常:
(1054, "Unknown column 'location_id_id' in 'field list'")
我究竟做錯了什么?
這是用於創建表的SQL腳本的一部分:
CREATE TABLE IF NOT EXISTS `database`.`units` (
`unit_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`unit_num` TINYINT UNSIGNED NOT NULL ,
`location_id` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`unit_id`) ,
UNIQUE INDEX `ID_UNIQUE` (`unit_id` ASC) ,
INDEX `location_idx` (`location_id` ASC) ,
CONSTRAINT `location_id`
FOREIGN KEY (`location_id` )
REFERENCES `database`.`locations` (`location_id` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
先感謝您!
如果要顯式指定列,請使用db_column
:
class Units(BaseModel):
unit_id = PrimaryKeyField()
unit_num = IntegerField()
location_id = ForeignKeyField(Locations, db_column='location_id', related_name='units')
記錄在案: http : //peewee.readthedocs.org/en/latest/peewee/models.html#field-types-table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.