SQLAlchemy的 - 我们可以在关系定义日期比较?
-
24-09-2019 - |
题
我此映射器定义:
mapper(Resource, resource_table,
properties = {'type' : relation(ResourceType,lazy = False),
'groups' : relation(Group, secondary = model.tables['resource_group'],
backref = 'resources'),
'parent' : relation(Relation, uselist=False, primaryjoin =
and_(relation_table.c.res_id == resource_table.c.res_id,
relation_table.c.end_date > datetime.now())),
'children' : relation(Relation, primaryjoin =
and_(relation_table.c.parent_id == resource_table.c.res_id,
relation_table.c.end_date > func.now()))})
但由于某些原因,如果我创建的关系表一个新行,改变旧的行中的关系的END_DATE到旧日期,物业父不更新。 此外,如果一个重载的资源栏,将显示与旧日期的老关系,所以我敢肯定它与映射器中的日期做对比。
如果我用标志列,字符串或整数更换END_DATE和做标记的比较获得正确的行为,但我确实想使用的日期。
任何帮助是受欢迎的。
谢谢,
理查德Lopes的
解决方案
其实我已经发现了什么是错误的。 的关系实际工作。 这个问题是由END_DATE设置为()类似datetime.now解决 - 1秒,所以在它发生之前的资源实际上是由SQLAlchemy的刷新。 甲毫秒发出我想。
理查德Lopes的
不隶属于 StackOverflow