Python SQLAlchemy:AttributeError:';unicode';对象没有属性'_萨乌州';

Python SQLAlchemy:AttributeError:';unicode';对象没有属性'_萨乌州';,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我也看到过其他类似错误的问题,尽管他们的修复并没有解决我的问题。注意,我正在使用炼金术 这是我的模型文件: class subjects(db.Model): id = db.Column(db.Integer, primary_key=True) subject = db.Column(db.String(100)) class questions(db.Model): id = db.Column(db.Integer, primary_key=True)

我也看到过其他类似错误的问题,尽管他们的修复并没有解决我的问题。注意,我正在使用炼金术

这是我的模型文件:

class subjects(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    subject = db.Column(db.String(100))

class questions(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    accountID = db.Column(db.Integer, db.ForeignKey('accounts.id'))
    subjectID = db.Column(db.Integer, db.ForeignKey('subjects.id'))
    subject = db.relationship('subjects')
    topic = db.Column(db.String(150), nullable=True)
正如您所看到的,我希望
问题.subject
指的是
主题.subject
。我尝试形成一个查询:

topicList = db.session.query(questions.topic.distinct()).filter_by(subject=subjectID, accountID=accountID)
我收到一个错误,说明
AttributeError:“unicode”对象没有属性“\u sa\u instance\u state”


这个错误意味着什么?如何修复代码以防止这个错误?谢谢。

您正在按
主题进行筛选,但提供的是字符串而不是对象。您需要使用一个对象

subject = db.session.query(subjects).get(subjectID)
topicList = db.session.query(questions.topic.distinct()).filter_by(subject=subject, accountID=accountID)
或者您需要通过
subjectID

topicList = db.session.query(questions.topic.distinct()).filter_by(subjectID=subjectID, accountID=accountID)
在这两种情况下,您似乎将
subjectID
用作字符串,而它应该是整数。我不确定它是如何得到它的初始值的,但您需要在那里解决这个问题