SQLALCHEMY - мы можем использовать сравнение даты в определении отношения?
-
24-09-2019 - |
Вопрос
У меня определено это Mapper:
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 старой строки в отношении к старой дате, родитель свойства не обновляется. Кроме того, если перезагрузить строку ресурсов, отображается старая связь со старой датой, поэтому я уверен, что это связано с сравнением даты в Mapper.
Если я заменил end_date на строку столбца флага или целое число, и сделайте сравнение на флага, я получаю правильное поведение, но я хочу использовать даты.
Любая помощь приветствуется.
Спасибо,
Ричард Лопес
Решение
Я на самом деле нашел то, что было не так. Отношение на самом деле работает. Проблема была решена путем установки End_date к чему-то вроде datetime.now () - 1 секунду, поэтому оно происходит до того, как ресурс фактически обновляется SQLALCHEMY. Проблема миллисекунды я полагаю.
Ричард Лопес