SQLAlchemy无法调整类型“builtin_function_or_method”

问题描述 投票:1回答:1

我正在使用带有Flask和SQLAlchemy的Celery将一些字符串存储到数据库中。一切正常,但是当我创建数据库类时:

class Locations(db.Model):
    id = db.Column('id', db.Integer, primary_key=True)
    data = db.Column('data', db.String(50))

def insert():
    location="Madrid"
    l = Locations(id=id, data=location)
    db.session.add(l)
    db.session.commit()

当我访问一个url页面调用方法insert()时,我得到这个错误,我假设它与id有关:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'builtin_function_or_method' [SQL: 'INSERT INTO locations (id, data) VALUES (%(id)s, %(data)s)'] [parameters: {'id': <built-in function id>, 'data': 'Oslo'}] (Background on this error at: http://sqlalche.me/e/f405)
sqlalchemy
1个回答
1
投票

摆脱类型'id'和'数据',一切都应该按预期工作。

class Locations(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    data = db.Column(db.String(50))

def insert():
    location="Madrid"
    l = Locations(id=id, data=location) # You may want to remove id as well here as it will be autoincrement by default. 
   # So it can be l=Locations(data=location)
    db.session.add(l)
    db.session.commit()
© www.soinside.com 2019 - 2024. All rights reserved.