如何解决如何过滤 SQLAlchemy 查询以便只返回特定日期中的事件?
我的模型如下所示: 从日期时间导入日期时间,时间增量
class Contract(db.Model,BaseModel):
id = Column('id',Integer,primary_key=True)
client_id = Column(Integer,ForeignKey('client.id'),index=True)
client = relationship("Client")
......
renewal_date = Column(DateTime)
class Client(db.Model,BaseModel):
id = db.Column('id',db.Integer,primary_key=True)
name = db.Column(db.String(150))
........
因此,我尝试在 sqlAlchemy
中进行查询,如下所示:
def get_renewals_for_client_bymonth(client_id):
contracts = Contract.query.join(Client) \
.filter(Client.id == client_id) \
.order_by(Contract.renewal_date) \
.all()
return contracts
its gives me result something like given below..
data =[
{ "client": {"id": 3,"name": "zen-zen"},"end_date": "2021-02-02","id": 61,"start_date": "2021-01-03","vendor": "ab"
},....
{
"client": {"id": 3,"name": "zen zen"},"end_date": "2021-04-15","id": 26,"start_date": "2021-02-02","vendor": "test"}
]
按天需要的合约列表:groupby("end_date")
需要输出格式:
list = [
{"2021-02-02":
[
{
"client": {"id": 3,"name": "benzene"},"vendor": "ab"
},{
"client": {"id": 3,...
}
]
},{"2021-04-02":
[
{
...
"end_date": "2021-04-02","id": 27,.....
}
]
}
]
我尝试过类似的东西。
filtered = [c for c in contract if (Now + timedelta(days=...)) >= c.end_date]
for k,v in groupby(filtered,key=lambda x: x['end_date']): 返回 {k: list(v)}
我收到错误合同对象不可下标
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。