我有urls
和requests
表,我已经定义了这样的关系:
class Request(Base):
...
url_id = Column('url_id', Integer, ForeignKey(Url.id))
requests = relationship(Url, backref='requests')
这意味着我可以询问Url.requests
并获取针对给定 URL 发出的所有请求。但是,我想做的是获取requests
一组仅限于特定日期的 Url。
我可以写这个来获得我想要的结果集,但我不知道如何将它整齐地打包,以便我可以迭代我的Url
对象并获取.requests
每个对象。理想情况下,我也想预先加载这些 Request 对象。这是我写的以获取我想要的行的内容:
session.query(Url).join(Request).filter(Request.created >= start_date, Request.created < end_date)
如果我转储查询,它看起来很合理,但是当我遍历 url 并询问每个请求时,.requests
我会返回所有请求,而不仅仅是那些通过我的过滤器的请求。可以用 ORM 做到这一点吗?