我有一张表与各自的ForeignKeys有两个(M-1)关系。我想验证ids是否匹配。我试图比较ID并接收:history.pushState(null, null, href);
我不确定为什么会出现这个问题。我不确定每个SQLAlchemy文档是否应该使用NameError: global name 'owner_id' is not defined
方法,但它在表中。致电join
也无效。
表格是:
self.
查询:
class Assessment_Results(Base):
__tablename__ = 'assessment_results'
id = Column(Integer, primary_key=True)
created_on = Column(DateTime, default=datetime.utcnow)
owner_id = Column(Integer, ForeignKey('users.user_id'))
owner = relationship('User', backref='assessment_results')
assessment_id = Column(Integer, ForeignKey('assessments.assessment_id'))
assessment = relationship('Assessment', backref='assessment_results')
def __init__(self, owner, assessment):
self.owner = owner
self.assessment = assessment
整个追溯:
def retrieve_assessment_results(self, owner, assessment):
assess_results = self.session.query(Assessment_Results).\
filter(Assessment_Results.id == owner_id).\
filter(Assessment_Results.id == assessment_id).all()
return assess_results
此新实施后出现新的跟踪错误:
ERROR: notssdb.test.test.test1
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/Users/ack/code/venv/NotssDB/notssdb/test/test.py", line 86, in test1
api.create_category_rating(2, 'Decision-Making', 'baseball', 'Becoming a Leader')
File "/Users/ack/code/venv/NotssDB/notssdb/api/convenience.py", line 29, in create_category_rating
assessment_results = self.retrieve_assessment_results(owner, assessment)
File "/Users/ack/code/venv/NotssDB/notssdb/api/object.py", line 273, in retrieve_assessment_results
filter(Assessment_Results.id == owner_id).\
NameError: global name 'owner_id' is not defined
上述方法的继承类:
def retrieve_assessment_results(self, owner, assessment):
assess_results = self.session.query(Assessment_Results).\
filter(Assessment_Results.owner_id == owner.id).\
filter(Assessment_Results.assessment_id == assessment.id).all()
return assess_results
这是cat_rating:
def create_assessment_results(self, username, name):
owner = self.retrieve_user(username)
assessment = self.retrieve_assessment(name)
return super(ConvenienceAPI, self).create_assessment_results(owner, assessment)
错误:
def create_category_rating(self, category_rating_int, category_name, owner, assessment):
category = self.retrieve_category(category_name)
assessment_results = self.retrieve_assessment_results(owner, assessment)
return super(ConvenienceAPI, self).create_category_rating(category_rating_int, category, assessment_results)
答案 0 :(得分:1)
问题在于这一行......
filter(Assessment_Results.id == owner_id).\
owner_id未在此方法中定义,并且未作为Assessment_Results对象的属性进行访问,因此解释器不知道您尝试通过此名称引用的对象。
我想你可能想做
filter(Assessment_Results.owner_id == owner.id).\
但是假设所有者是所有者模型的实例。
一旦你找出你想用于owner_id的变量,你最终会遇到与assessment_id相同的问题(因为它也没有在方法中定义)。