У меня есть 2 модели:Колба SQLAlchemy фильтр записей из внешних ключей отношений
class Scenario(db.Model):
__tablename__ = 'scenarios'
scenario_id = db.Column(db.Integer, primary_key=True)
scenario_name = db.Column(db.String(120))
scenario_text = db.Column(db.Text)
hints = db.relationship('Hint', backref='scenario', lazy='dynamic')
def __init__(self, scenario_name, scenario_text):
self.scenario_name = scenario_name
self.scenario_text = scenario_text
def __repr__(self):
return "<Scenario(scenario_name='%s', scenario_text='%s', hints='%s')>" % self.scenario_name, self.scenario_text, self.hints
class Hint(db.Model):
__tablename__ = 'hints'
hint_id = db.Column(db.Integer, primary_key=True)
scenario_id = db.Column(db.Integer, db.ForeignKey('scenarios.scenario_id'))
hint = db.Column(db.Text)
release_time = db.Column(db.Integer)
def __init__(self, scenario_id, hint, release_time):
self.scenario_id = scenario_id
self.hint = hint
self.release_time = release_time
def __repr__(self):
return "<Hint(scenario_id='%s', hint='%s', release_time='%s')>" % self.scenario_id, self.hint, self.release_time
Я хочу, чтобы иметь возможность получить все сценарии с их соответствующими подсказками, но только намеками, которые имеют release_time меньше, чем текущее время ,
Я полагал, что это будет работать:
scenarios = Scenario.query.filter(Scenario.hints.release_time < time.time())
Но я получаю эту ошибку:
AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Scenario.hints has an attribute 'release_time'
Я только начал играть с колбой и SQLAlchemy. Любой совет будет принят во внимание.
Учитывая, что мне нужны все записи, соответствующие этому, я использовал all() вместо first(). Это не дает мне никаких данных. – ahhchuu
Есть ли у вас какие-либо данные, которые удовлетворяют этому запросу? Что дает вам 'Hint.query.all()'? – jonafato
Ах. Я отсутствовал release_times для записей, которые были бы выбраны. : P Это работает. благодаря – ahhchuu