我定义了这个映射器:
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 更改为旧日期,则属性 parent 不会更新。此外,如果重新加载资源行,则会显示与旧日期的旧关系,所以我很确定它与映射器中的日期比较有关。
如果我用标志列字符串或整数替换 end_date 并对标志进行比较,我会得到正确的行为,但我确实想使用日期。
欢迎任何帮助。
谢谢,
理查德·洛佩斯