属性错误:“_Option”对象在烧瓶中没有属性“_sa_instance_state”

问题描述 投票:0回答:2

我正在为我的应用程序使用 Flask 并收到 AttributeError: '_Option' object has no attribute '_sa_instance_state' 错误。不知道它是关于什么的。我谷歌了一下,似乎这是一个 SQL-Alchemy 问题。你能帮我吗?

这是我的模型.py:

#current table is used to make navigation hierarchy. eg. menu/submenu
#eg. About Us (History, Mission, Vision)
menu_hierarchy = db.Table('menu_hierarchy',
        db.Column('parent_id', db.Integer, db.ForeignKey('menu.id')),
        db.Column('child_id', db.Integer, db.ForeignKey('menu.id'))
    )

class Menu(db.Model):
    """Menu is used for websites navigation titles.
    eg. Home/About Us/Blog/Contacts/and etc""" 

    id          = db.Column(db.Integer, primary_key = True)
    title       = db.Column(db.String(255))
    title_eng   = db.Column(db.String(255))
    alias       = db.Column(db.String(255))
    menu_type   = db.Column(db.String(10))
    ordering    = db.Column(db.SmallInteger, default = '1')
    check_out_time = db.Column(db.DateTime)
    access      = db.Column(db.String(30))
    published   = db.Column(db.SmallInteger, default = '1')
    parent_id   = db.relationship('Menu',
        secondary = menu_hierarchy,
        primaryjoin = (menu_hierarchy.c.parent_id == id),
        secondaryjoin = (menu_hierarchy.c.child_id == id),
        backref = db.backref('menu_hierarchy', lazy = 'dynamic'),
        lazy = 'dynamic')
    content     = db.Column(db.String)
    content_eng = db.Column(db.String)
    image       = db.Column(db.String(350))
flask sqlalchemy flask-sqlalchemy
2个回答
13
投票

问题似乎与被解释为 ORM 对象的整数 (ID) 有关。

参见 this SO 帖子,其中包含相关代码示例。


0
投票

检查您是否直接删除了

Model
实例的该字段。原理是,当您将对象传递给函数时,它是同一个对象,而不是它的副本,因此通过
del vars(object)[field]
删除属性会更改原始对象。请在更改之前使用
copy.deepcopy(object)

© www.soinside.com 2019 - 2024. All rights reserved.