在SQLAlchemy中需要时自动包含连接

2024-09-29 23:20:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在建一个关于一套桌子的课程。其中一个小范围,TableDates,包括一个领域TableDates.date表我用它来过滤周期。那很简单。假设查询已具有所需的select构造:

query = query.filter(TableDates.date < date)

当查询已经包含了与TableDates的适当连接时,它就可以工作了。你知道吗

但在某些情况下,y有一个查询不包含正确的连接。在这些情况下,我应该使用:

query = query.join(TableDates).filter(TableDates.date < date)

这就是问题所在。我想在一个对象方法中包含这个过滤代码,这个对象方法可以同时处理已经加入TableDates或没有加入TableDates的查询。当然,当我使用TableDates连接时,我可以跟踪自己的方法,以决定是否必须在查询中包含join(TableDates)。但我的问题是:有没有办法让炼金术来完成这项工作?我浏览了一下文档,没有发现任何线索,但可能我错过了。你知道吗

更具体地说,我想的是:

  • 有一种检查查询以知道TableDates是否已经加入其中的方法。

  • 有一种编写连接(TableDates)的方法,如果它已经在查询中被连接,那么它什么也不做(当然,如果我只是在TableDates已经被连接时尝试添加该连接,我会得到一个异常,说明我不能将它自身连接起来)。


Tags: 对象方法代码date情况filterqueryselect

热门问题